.htaccess已被读取,但重写网址无法正常工作

时间:2016-01-04 23:50:18

标签: php apache .htaccess mod-rewrite

httpd.conf中用于重写的模块如下:

LoadModule rewrite_module modules/mod_rewrite.so

.htaccess的路径:

c:\wamp\www\magentodev\.htaccess

因此在.htacess中我有这个:

<IfModule mod_rewrite.so>

    Options +FollowSymLinks
    RewriteEngine on

    RewriteCond %{REQUEST_URI} ^/boombottleh2o\+?$
    RewriteRule (.*) /gu/boombottleh2o.php [NC,L,QSA]

//some other ones

</IfModule>

我希望尝试:

localhost/magentodev/boombottleh2o

而不是:

localhost/magentodev/gu/boombottleh2o.php

它应该工作,因为它正在生产但不是localhost,我有wamp服务器apache,这里有一些配置:

在C:\ wamp \ bin \ apache \ apache2.4.9 \ conf \ httpd.conf中:

<Directory "c:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require local
</Directory>

这是不正确的,因为Anu说的是我在C:\ wamp \ bin \ apache \ apache2.4.9 \ conf \ extra \ httpd-vhosts.conf中更改了 到:

<Directory "C:/wamp/www/">
Options All
AllowOverride All
Order allow,deny
Allow from all
</Directory>

<VirtualHost *:80>
ServerAdmin localhost
DocumentRoot C:/wamp/www/
ServerName localhost
</VirtualHost>

我无法弄清楚出了什么问题,我感谢任何帮助

3 个答案:

答案 0 :(得分:5)

C:/wamp/www/magentodev/.htaccess像这样:

ErrorDocument 404 default
Options +FollowSymLinks
RewriteEngine on

RewriteRule ^boombottleh2o(/.*)?$ gu/boombottleh2o.php [NC,L]

mod_rewrite参考文献:

答案 1 :(得分:2)

我的Wamp服务器版本2.5与Windows 7有类似的问题..

您的.htaccess文件看起来非常适合您尝试完成的内容,但使用您的vhost.conf确保覆盖所有边界并在文件开头添加正则表达式*

所以而不是

  

&LT; VirtualHost localhost:80&gt;
  你得到了   &LT; VirtualHost *:80&gt;

这会消除localhost,因为您已将其设置为ServerName,并且您可以在neath下添加别名

这可能听起来很明显,但是你和wampmanager有过尝试吗?

单击Wamp图标,然后单击Apache,然后单击模块并向下滚动一点,确保重写模块旁边有一个检查。 那为我修好了!

祝你好运,Wamp总是比看起来更棘手

答案 2 :(得分:1)

看起来您的RewriteCond希望匹配http://localhost/boombottleh2o/而不是您使用的网址localhost/magentodev/boombottleh2o,因为REQUEST_URI字符串将包含/magentodev/boombottleh2o,但您的正则表达式希望匹配/boombottleh2o在字符串的最开头。

要修复此情况,您需要在开头删除克拉^

您还在正则表达式结束时逃离+字符。 \+?将尝试匹配+符号0或一次。我不确定这是否是故意的,但如果您使用.*?而不是您总是匹配/ boombottleh20 /文件夹的请求,即使请求更深或包含文件类型< / p>

Tl; dr - 我认为你的RewriteRule应该是这样的:

RewriteCond %{REQUEST_URI} /boombottleh2o.*?$