我正在Vista(Apache v2.2.11)上运行wamp
并设置了项目,http://localhost/projectx
是projectx
的基本目录。现在,我想要
http://localhost/projectx/somepage/extra
将重写为
http://localhost/projectx/PUBLIC/somepage/extra
为此,我在C:\wamp\www\projectx\.htacces
中有一个文件就是这么简单:
RewriteEngine On
RewriteBase /projectx
RewriteCond %{REQUEST_URI} !^/PUBLIC
RewriteRule ^(.*)$ /PUBLIC$1 [L]
我不能为我的生活弄清楚为什么这不起作用。我得到的错误是“在此服务器上找不到请求的URL / PUBLIC”。感谢。
2010年3月25日更新:
根据Michael的解决方案,我删除了绝对路径。出于某种原因,我还需要在Cond和Rule中添加一个最终斜杠:
RewriteEngine On
RewriteBase /projectx
RewriteCond %{REQUEST_URI} !^/PUBLIC/
RewriteRule ^(.*)$ PUBLIC/$1 [L]
答案 0 :(得分:1)
尝试更改此内容:
RewriteRule ^(.*)$ /PUBLIC$1 [L]
对此:
RewriteRule ^(.*)$ PUBLIC$1 [L]
这可能只是问题的绝对路径。
您还需要将$1
更改为基于零RewriteRule ^(.*)$ PUBLIC$0 [L]
答案 1 :(得分:0)
应该是
RewriteEngine On
RewriteBase /projectx
RewriteCond %{REQUEST_URI} !^/PUBLIC
RewriteRule ^(.*)(PUBLIC)(.*)$ /projectx/PUBLIC$3 [L]