Php htaccess使用分隔符重定向

Php htaccess使用分隔符重定向,php,.htaccess,redirect,Php,.htaccess,Redirect,我使用了这个.htaccess文件,按照标准的mysite.com/module/action重定向了我站点中的所有内容 RewriteEngine on RewriteCond %{REQUEST_URI} !\.(?:css|js|ttf|woff|jpe?g|gif|png)$ [NC] RewriteRule (.*) index.php?module=$1&action=$2 [QSA,L] 例如,如果我访问mysite.com/contact或mysite.com/cont

我使用了这个.htaccess文件,按照标准的mysite.com/module/action重定向了我站点中的所有内容

RewriteEngine on
RewriteCond %{REQUEST_URI} !\.(?:css|js|ttf|woff|jpe?g|gif|png)$ [NC]
RewriteRule (.*) index.php?module=$1&action=$2 [QSA,L]
例如,如果我访问mysite.com/contact或mysite.com/contact/save,它是可以的,但是当我没有传递任何参数(模块或操作)时,我会出现403错误,因为它试图执行index.php?模块=&action=


我的问题是如何检查URL是否有斜杠,因为如果没有参数,我只需转到index.php即可。您可以使用以下规则:

DirectoryIndex index.php
RewriteEngine on

RewriteCond %{REQUEST_URI} \.(?:css|js|ttf|woff|jpe?g|gif|png)$ [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^([\w-]+)/?$ index.php?module=$1 [QSA,L]

RewriteRule ^([\w-]+)/([\w-]+)/?$ index.php?module=$1&action=$2 [QSA,L]

谢谢你的回复,它的工作很好,但我有其他问题后,这个选项。如果我访问主页,我仍然有一个403错误。例如,如果我没有模块和操作变量,我如何只转到index.php?
DirectoryIndex
已经做到了这一点。尝试在此顶部添加
Options+FollowSymLinks
。htaccessunfortunitelly错误继续…`Options+FollowSymLinks DirectoryIndex index.php RewriteEngine on RewriteCond%{REQUEST_URI}.(?:css | js | ttf | woff | jpe?g | gif | png)$[NC,或]RewriteCond%{REQUEST_FILENAME}-d[或]RewriteCond%{REQUEST_FILENAME}-f RewriteRule^-[L]RewriteRule^-[w-]/?$index.php?module=$1&action=$2[QSA,L]`所以…我只导航到home,表单示例及其生成的本地路径不是virtual/remote事实上我同意你的看法,可能是在我使用当前url处理后,网站的其他部分出现了问题。谢谢你花时间和精力来理解这个问题并帮助我。我将检查到底是什么问题,我注意到的一件事是,如果重新启动apache,第一次执行运行正常,下一次就会出现错误,因此,可能不是httaccess问题。