.htaccess Mod_rewrite,检查字符串是否为空
我需要写一个.htaccess文件来重写所有在域之后有任何内容的URL 例如.htaccess Mod_rewrite,检查字符串是否为空,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我需要写一个.htaccess文件来重写所有在域之后有任何内容的URL 例如RewriteRule^(.*)$index.php?page=course&course=1[L] 但这也会将example.com发送到重写的url,我不希望这样。我希望它只在域之后才重写它,比如example.com/CITA180 我知道我可以做example.com/c/CITA180,然后再做RewriteRule^c/(.*)$index.php?page=course&course=$1[L],但如果不需
RewriteRule^(.*)$index.php?page=course&course=1[L]
但这也会将example.com
发送到重写的url,我不希望这样。我希望它只在域之后才重写它,比如example.com/CITA180
我知道我可以做example.com/c/CITA180
,然后再做RewriteRule^c/(.*)$index.php?page=course&course=$1[L]
,但如果不需要的话,我不想这样做
谢谢。您可以使用
+
而不是*
来确保它与登录页不匹配。您还需要RewriteCond%{REQUEST\u FILENAME}-f
避免匹配默认登录页的条件:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?page=course&course=$1 [L]
添加正则表达式条件:
RewriteCond%{REQUEST\u FILENAME}regex
在您的情况下:RewriteCond%{REQUEST_FILENAME}[A-Z]
这将检查它是否包含任何字符 除了不检查文件外:
RewriteCond%{REQUEST\u FILENAME}-f