.htaccess为seo友好url重写url导致500错误

.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 ^([^/]*)/([

以下是我希望重写的一些示例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 ^([^/]*)/([^/]*)$ /?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]