【发布时间】:2010-04-09 02:13:35
【问题描述】:
无法通过网络或这些论坛找到解决此问题的方法 - 如果我遗漏了什么,请道歉!
我的 .htaccess RewriteRules 运行良好 - 我的网页中有搜索引擎和用户友好的链接,不友好的数据库 URL 隐藏在后台运行。
除非我添加了 RewriteRule 以添加“www”。如果用户没有输入它,则放在 URL 的前面 - 以确保只有一个出现在搜索引擎中。这就是现在发生的事情,我不知道为什么!
我对内容的友好URL结构是这样的,数据库查询字符串使用第一个“importantword”:
www.example.com/importantword-nonimportantword/
.htaccess sn-p:
Options +FollowSymLinks
Options -Indexes
RewriteEngine on
RewriteOptions MaxRedirects=10
RewriteBase /
RewriteRule ^/$ index.php [L]
RewriteRule ^(.*)-(.*)/overview/$ detail.php?categoryID=$1 [L]
RewriteCond %{HTTP_HOST} !^www.example.com$
RewriteRule ^(.*)$ http://www.example.com/$1 [L]
自从我添加最后两行后发生了什么:
案例 1:用户类型(或点击)www.example.com/honda-vehicle/overview/
- 正常工作
- 他们被带到正确的页面,浏览器的 URL 栏显示:
www.example.com/honda-vehicles/overview/
案例 2:用户类型 example.com
- 正常工作
- 他们被带到 www.example.com 并且浏览器 URL 栏显示:
www.example.com
案例 3:用户类型(或点击)example.com/honda-vehicles/overview/ 即没有前缀“www”
- 无法正常工作
- 它们被带到正确的页面,但浏览器 URL 栏显示不友好的 URL:
www.example.com/detail.php?categoryID=honda
我认为 RewriteRules 的顺序存在一些问题,但它在试图逻辑地逐步解决它并解决问题时正在努力工作!
任何帮助或指点将不胜感激!
【问题讨论】:
标签: .htaccess mod-rewrite