mpe*_*pen 7 apache .htaccess webfaction
我想使用一个.htaccess文件来检查请求的路径是否是目录中的public/文件.如果是,请提供服务,否则转发请求/index.php.我似乎无法让这个工作.
这是我得到的:
Options +FollowSymLinks
RewriteEngine on
Options -Indexes
RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f
RewriteRule ^ %{DOCUMENT_ROOT}/public%{REQUEST_URI} [L]
RewriteRule ^ index.php [QSA,L]
Run Code Online (Sandbox Code Playgroud)
例如,http://example.com/css/style.css应该有apache服务,/public/css/style.css因为它是一个存在的文件,但http://example.com/css/style.bad应该被发送到/index.php.
此代码应该按预期工作
Options +FollowSymLinks -MultiViews -Indexes
RewriteEngine On
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/public/$1 -f
RewriteRule ^(.*)$ public/$1 [L]
RewriteCond %{THE_REQUEST} \s/public/ [NC,OR]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L,QSA]
Run Code Online (Sandbox Code Playgroud)
显然[L]没有按我的预期工作。考虑到这一点,经过大量的试验和错误,我设法找到了一些可行的方法:
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f
RewriteRule ^ public%{REQUEST_URI} [L]
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^ index.php [QSA,L]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7062 次 |
| 最近记录: |