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>
我无法弄清楚出了什么问题,我感谢任何帮助
答案 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.*?$