0

我有一些 mod rewrite 将删除 .php 并格式化一个名为county.php 的特定页面。

我的问题在于重写county.php 的部分。我必须在所有指向 css、图像和 js 文件的链接前面加上一个“/”。当我使用 php 包含时,这会导致站点的其他部分出现问题。有没有解决的办法?谢谢

RewriteEngine On
RewriteRule ^county/([^/\.]+)/?$ county.php?county_id=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php
4

1 回答 1

1

如果您使用 mod_rewrite 创建虚拟文件夹,则必须为所有其他媒体类型(CSS、JS、图像...)处理不同的文件夹名称。处理动态数量的文件夹,甚至一些有文件夹的页面和一些没有文件夹的页面会使其变得更加复杂。

我看到以下解决方法:

  1. 始终使用相同数量的文件夹(文件夹深度) - 或

  2. 不要使用 / 字符来分隔参数(例如“county_xzy”) - 或

  3. 也为您的媒体文件创建 mod_rewrite 规则

例子:

RewriteEngine On
RewriteRule .*/(.*?)\.css$ css/$1.css
RewriteRule .*/(.*?)\.js$ js/$1.js
RewriteRule .*/(.*?)\.(jpg|jpeg|png|gif)$ images/$1.$2
RewriteRule ^county/([^/\.]+)/?$ county.php?county_id=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) $1.php
于 2012-05-01T15:18:07.413 回答