尚未在网上或这些论坛上找到解决问题的方法-如果我错过了某些事情,表示歉意!
我的.htaccess RewriteRules运行良好-在我的网页中具有搜索引擎和用户友好的链接,而在后台隐藏了不友好的数据库URL。
除非我添加了RewriteRule来添加“www”。如果用户未输入网址,则显示在网址前面-确保在搜索引擎中仅显示一个网址。这是现在发生的事情,我不知道为什么!
我对内容的友好URL结构是这样的,并且数据库查询字符串使用第一个“importantword”:
www.example.com/importantword-nonimportantword/
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]
www.example.com/honda-vehicles/overview/
www.example.com
www.example.com/detail.php?categoryID=honda
最佳答案
规则以它们出现的顺序应用。这意味着,当请求honda-vehicles/overview/
时,将应用第二条规则,将路径重写为detail.php?categoryID=honda
。由于使用了L标志,当前的重写过程将立即停止,但还会使用新的URL重新启动,从而导致现在应用了第三条规则。
您可以通过简单地更改顺序来解决此问题。将您的最后一条规则作为第一条规则(并添加R标志):
RewriteCond %{HTTP_HOST} !^www.example.com$
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
关于.htaccess - .htaccess-RewriteRules工作正常,但浏览器地址栏显示完整(不友好)URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2604709/
相关文章:
wcf - Windows Service中的WCF主机:无法获取wsdl
zend-framework - 无法根据差异生成迁移类(Zend Framework 1.10 +
continuous-integration - 与 ClearCase 和长期更新的快照 View
macos - 您可以使用 PackageMaker 命令从文件列表中创建安装程序吗?
version-control - 在Eclipse CDT中具有多个二进制文件的项目
asp.net - 连接到 https ://webservice in asp. 网络应用程序
.net - .net 应用程序运行的进程是非托管的还是正常的 Windows 进程?