我有一个Silex应用程序,我得到这样的请求: https://.../dev/foo/bar并希望将其重写为https://.../index.php/foo/bar
Wheras" ..."可以是" www.asd.com"到" localhost / ~asd /文件夹"。
我的.htaccess文件位于网络根目录https://.../
这是我正常使用的mod_rewrite设置:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
我设置RewriteBase的天真尝试失败了:
RewriteEngine On
RewriteBase /dev
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
我收到错误
Forbidden
You don't have permission to access /dev/index.php on this server.
同样只是重写失败:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^dev/(.*) index.php [L]
奇怪的是,它不会跳过开发部分,但它会尝试访问/ dev / foo / bar而不是所需的/ foo / bar。
有任何线索吗?
答案 0 :(得分:0)
我通过组合mod_alias和mod_rewrite为我找到了一个解决方案,RewriteBase
现在正常工作:
Alias /dev /app/web
<Directory /app/web>
Options -MultiViews
RewriteEngine On
RewriteBase /dev
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
</Directory>