shu*_*wal 6 php .htaccess mod-rewrite url-rewriting
我希望当用户在URL中输入http://example.com/abc/123/jon/时实际显示此文件http://example.com/abc.php?id=123&name=jon这很容易就可以了通过将这些行添加到htaccess文件中来完成:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^abc/(.*)/(.*)/ abc.php?id=$1&name=$2 [L]
Run Code Online (Sandbox Code Playgroud)
但我的abc.php文件有一些(css,js)文件:
<link href="css/style.css" rel="stylesheet">
<script src="js/jquery-1.10.2.js"></script>
Run Code Online (Sandbox Code Playgroud)
和图像如:img/logo.png
但由于我的.htaccess文件,它在这里搜索style.css:http://example.com/abc/123/jon/css/style.css 而不是http://example.com/css/style.css和js和图像类似.
我已经在这里尝试了许多类似的答案,但没有一个为我工作.我正在寻找.htaccess解决方案.
Cro*_*ses 11
你可以用它:
RewriteEngine on
# not rewrite css, js and images
RewriteCond %{REQUEST_URI} !\.(?:css|js|jpe?g|gif|png)$ [NC]
RewriteRule ^abc/(.+)/(.+)/ abc.php?id=$1&name=$2 [L]
# rewrite css, js and images, from root
RewriteRule ^abc/[^/]+/[^/]+/(.+)$ $1 [L]
Run Code Online (Sandbox Code Playgroud)
如果最终的css(或js)目录不是root用户,则可以在最后一个之前添加路径$1
.现在是:/css/style.css
使用/abc/xxx/yyy
/css/style.css
只需在RewriteRule
一行之前添加:
RewriteCond %{REQUEST_FILENAME} !-f
Run Code Online (Sandbox Code Playgroud)
这意味着如果您的请求 uri 指向现有文件,则 nextRewriteRule
不会触发。
如果你想要其他方式,那么这个应该做:
RewriteCond %{REQUEST_FILENAME} !\.(css|js|png|jpg)$
Run Code Online (Sandbox Code Playgroud)
您可以添加更多以极 ( |
)分隔的扩展名
归档时间: |
|
查看次数: |
19481 次 |
最近记录: |