.htaccess - SEO 友好的 URL 不起作用

标签 .htaccess mod-rewrite rewrite seo

<分区>

我正在尝试为我的网站设置 SEO 友好的 URL,但似乎无法使它们正常工作。这是我的 htaccess 的代码:

Options +FollowSymLinks
RewriteEngine On

deny from all
allow from 46.763.65.235

RewriteCond %{HTTP_HOST} ^www\.mywebsite\.com
RewriteRule ^(.*)$ http://mywebsite.com/$1 [R=301,L]

RewriteRule ^(link1|link2|link3|link4)$ http://mywebsite.com/$1/ [R=301]

RewriteRule ^(link1|link2|link3|link4)/(.*)$ http://mywebsite.com/m_$1.php/$2 [L]

基本上去http://mywebsite.com/link1的时候它应该显示 http://mywebsite.com/m_link1.php 的内容

但是,现在发生的事情是我去 http://mywebsite.com/link1它只是重定向到 http://mywebsite.com/m_link1.php

谁能告诉我床需要改变或添加什么?

最佳答案

参见 this question .您正在使用导致重定向的 R 标志。如果没有该标志,它将进行内部重定向(不会导致浏览器发出另一个请求)。

更新:我认为问题在于尝试重定向到另一个 URL,假设“mywebsite.com”是您 URL 的占位符。在那种情况下,您确实需要 [L] 标志,以便匹配的规则是将起作用的 [L]ast 规则。这对我来说很好:

(注意:# 注释掉这些行,所以它们什么都不做)

Options +FollowSymLinks
RewriteEngine On

#deny from all
#allow from 46.763.65.235

#RewriteCond %{HTTP_HOST} ^www\.mywebsite\.com
#RewriteRule ^(.*)$ http://mywebsite.com/$1 [R=301,L]

#RewriteRule ^(link1|link2|link3|link4)$ http://mywebsite.com/$1/ [R=301]

#one rule for /link1 or /link2 etc
RewriteRule ^(link1|link2|link3|link4)$ m_$1.php [L]
#another rule for /link1/foo or /link2/something-else
RewriteRule ^(link1|link2|link3|link4)/(.*)$ m_$1.php/$2 [L]

关于.htaccess - SEO 友好的 URL 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14179055/

相关文章:

security - 使用 .htaccess 文件保护网站目录安全吗?

Apache - 将 301 pdf 重定向到带空格的 pdf(二进制文件)

apache - mod_rewrite : QSA flag breaks configuration

url - Nginx 位置正则表达式不匹配

php - .htaccess php_value 设置会影响在命令行运行的脚本吗?

apache - 使用 .htaccess 甚至对经过身份验证的用户隐藏文件

apache - 在 Apache2 中使用 mod_jk 为 URL 别名

.htaccess - Htaccess 和 SEO 友好的固定链接

mod-rewrite - 使用 mod_rewrite 重写基本 URL 并为其添加特定单词

apache - 尝试删除路径、文件扩展名以及某个查询参数(如果存在)