【问题标题】:URL Rewriting doesn't seem to work. Apache2URL 重写似乎不起作用。阿帕奇2
【发布时间】:2013-03-16 18:32:38
【问题描述】:

我希望这样当用户去 http://mysite.com/home 将他重定向到http://mysite.com/page.php?id=home。这是我放入 .htaccess 中的内容,但它似乎不起作用。

RewriteEngine On
RewriteRule ^/(.+)$ page.php?id=$1 [NC,L]

它只是将我发送到 /home 目录,并带有一个不错的 404。感谢帮助。谢谢。

编辑:

我已经尝试了一些我知道工作的重写,所以现在我确定这不是我的问题。我检查了phpinfo(),是的,mod rewrite 正在运行,我用 LAMP 设置了 apache2,我正在运行最新版本的 Linux Mint。

【问题讨论】:

  • 是否启用了 mod_rewrite?

标签: apache apache2 apache-modules


【解决方案1】:

好的,我解决了这个问题,我就是这样做的。

sudo gedit /etc/apache2/sites-available/default

然后我在文件的/var/www/ 部分将AllowOverride None 修改为AllowOverride all

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all #This was 'None' before, change it to 'all'
    Order allow,deny
    allow from all
</Directory>

【讨论】:

  • @frops 很高兴它有帮助!
  • 之后别忘了重启 Apache!
  • 谢谢!我有类似的问题,你的解决方案帮助了我。
【解决方案2】:

删除正斜杠后这对我有用:

RewriteEngine On 
RewriteBase /test 
RewriteRule ^(.+)$ page.php?id=$1 [NC,L]

【讨论】:

  • page.php 在您的文档根目录中吗?如果您不在文档根目录中,您还需要添加 RewriteBase 语句
  • 编辑了我的答案,向您展示了我的 .htaccess 文件。希望这会有所帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
  • 2013-02-09
  • 1970-01-01
  • 1970-01-01
  • 2015-04-05
  • 2018-07-09
相关资源
最近更新 更多