【发布时间】:2011-03-27 20:49:09
【问题描述】:
我在我的一个网站上使用这个重写规则效果很好,但我一直在尝试在另一个网站上使用它但它一直没有工作(两个网站使用相似的 url 结构)
显示页面不在服务器上
url重写细节:
<IfModule mod_rewrite.c>
Options +FollowSymlinks
Options -Multiviews
RewriteEngine on
RewriteBase /
RewriteRule ^view/([^/]+)/([^/]+)/$ view.php?id=$1&title=$2 [L]
RewriteRule ^view/([^/]+)/([^/]+)$ view.php?id=$1&title=$2 [L]
</IfModule>
这是链接'http://address.com/view/1/honda-accord-ivtec-2011'要重写为http://address.com/view.php?id=1&title=honda-accord-ivtec-2011
请问我哪里不对了
谢谢
【问题讨论】:
-
将
[L]更改为[R,L]以查看网址会将您带到哪里。 -
@Aleksi ,改了,同样的 404 not found 错误
-
生成的 url 是什么?是预期的网址还是您看到错误?如果一切按预期进行,那么视图 php 的权限是什么?
-
@Aleksi,我不明白;请澄清。如果我输入'address.com/view.php?id=1&title=honda-accord-ivtec-2011',页面会加载,但如果我输入'address.com/view/1/honda-accord-ivtec-2011',它不会。
-
那么权限就ok了。当您拥有 [R] 属性时,它应该会导致外部重定向,从而更改浏览器地址栏中的 URL。如果 RewriteRule 正确,则浏览器地址栏中的 URL 应更改以匹配预期的 URL。
标签: php apache .htaccess url-rewriting