【问题标题】:Serious url rewrite problem严重的url重写问题
【发布时间】: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


【解决方案1】:

也许你的 Apache 服务器上没有设置重写模块。在 Debian 的命令行中试试这个:

ln -s /etc/apache2/mods-available/rewrite.load  /etc/apache2/mods-enabled/rewrite.load

或者使用 Ubuntu:

sudo ln -s /etc/apache2/mods-available/rewrite.load  /etc/apache2/mods-enabled/rewrite.load

【讨论】:

    猜你喜欢
    • 2011-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多