.htaccess为seo友好url重写url导致500错误
以下是我希望重写的一些示例URL: 我希望将上述内容改写为: 这是我的htaccess文件:.htaccess为seo友好url重写url导致500错误,.htaccess,mod-rewrite,seo,.htaccess,Mod Rewrite,Seo,以下是我希望重写的一些示例URL: 我希望将上述内容改写为: 这是我的htaccess文件: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !^.*\.(jpg|css|js|gif|png)$ [NC] RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /?c=$1&s=$2&p=$3 [L] RewriteRule ^([^/]*)/([
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^.*\.(jpg|css|js|gif|png)$ [NC]
RewriteRule ^([^/]*)/([^/]*)/([^/]*)$ /?c=$1&s=$2&p=$3 [L]
RewriteRule ^([^/]*)/([^/]*)$ /?c=$1&s=$2 [L]
RewriteRule ^([^/]*)$ /?s=$1 [L]
有人能看出哪里出了问题吗?我要删除最后一行
RewriteRule ^([^/]*)$ /?s=$1 [L]
然而,页面加载时,似乎正在重写css和js文件?A
RewriteCond
仅适用于下一个重写规则。因为有多个规则需要相同的条件,所以最好定义一个单独的规则来排除所有文件、目录和已知URI
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_URI} \.(jpg|css|js|gif|png)$ [NC]
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ ?c=$1&s=$2&p=$3 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/?$ ?c=$1&s=$2 [L,QSA]
RewriteRule ^([^/]+)/?$ ?s=$1 [L,QSA]
它将失败/导致服务器错误的原因是它处于无限递归状态-^([^/]*)$
重定向到/?s=$1
,然后由^([^/]*)$
再次拾取,无限重复
试试这个。这不一定是最好的重写规则,但它可以解决您的特定问题:
RewriteRule^([^/]*)$index.php?s=$1[L,QSA]
RewriteRule ^([^/]*)$ /?s=$1 [L]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_URI} \.(jpg|css|js|gif|png)$ [NC]
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ ?c=$1&s=$2&p=$3 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/?$ ?c=$1&s=$2 [L,QSA]
RewriteRule ^([^/]+)/?$ ?s=$1 [L,QSA]