Jon*_*han 5 php mod-rewrite url-rewriting url-routing
我正在构建一个通过index.php运行所有代码的网站.
例如index.php?controller=something&id=01234.
我想用PHP来创建友好的URL,所以我这样做:
$request = str_replace('/root/', '', $_SERVER['REQUEST_URI']);
$params = explode('/', $request);
$controllers = array('first_c', 'second_c', 'third_c');
if (in_array($params[0], $controllers)) {
include($params[0]); // just to give an example
}
Run Code Online (Sandbox Code Playgroud)
然后使用mod_rewrite规则,RewriteRule ^.*$ ./index.php我将所有内容重定向到index.php.
我有一些问题:因为一切都发送到index.php,包括.css,.js和图像文件.所以除了php生成的HTML之外没有什么工作正常.我遇到了很大的麻烦,因为我尝试了mod_rewrite的所有东西(而不是PHP)我无法让它工作......请参阅:Apaches mod_rewrite VS. PHP路由?
谢谢.
只需改进你的mod重写:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
特别是添加线 RewriteCond %{REQUEST_FILENAME} !-f
如果你想要更多部分:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule admin/.*$ admin.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1592 次 |
| 最近记录: |