将所有URL重写为index.php,除了'/ Serene/Assets /'

chi*_*ikh 11 php .htaccess

所以我目前在我的.htaccess中将我的所有URL重定向到index.php:

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
Run Code Online (Sandbox Code Playgroud)

但是,我需要网址,例如http://localhost/Portfolio/Serene/Assets/css/style.css不重定向,但我不确定如何?

我真的很感激任何帮助,

干杯.

编辑:或者,我可以告诉htaccess不重定向任何.js,.css,图像文件等,但再次,我不太确定如何做到这一点?谢谢!

EDIT2:我还可以将以.php或路径(例如/ Portfolio /)结尾的任何内容重定向到index.php,我觉得这可能更容易.

EDIT3:成功,最终代码:

RewriteEngine on

RewriteCond %{DOCUMENT_ROOT} !-f
RewriteRule !\.(js|ico|gif|jpg|png|css|html|swf|flv|xml)$ index.php [QSA,L]
Run Code Online (Sandbox Code Playgroud)

Sea*_*udt 12

这是另一种方法:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)

图片,robots.txt不会被重写为index.php.只需添加您的目录/文件.

希望有所帮助!

  • 干杯! 那段代码没有帮助,但我需要知道的是`!`意味着重定向以下所有内容.以下是感兴趣的人的最终代码:`RewriteEngine on``RewriteCond%{DOCUMENT_ROOT}!-f``RewriteRule!\.(js | ico | gif | jpg | png | css | html | swf | flv | xml)$ index .php [QSA,L]` (2认同)

Sev*_*oes 6

这将把对服务器上不存在的任何文件的请求重写为index.php:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* index.php [L]
Run Code Online (Sandbox Code Playgroud)