.htaccess Mod_rewrite,检查字符串是否为空

.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],但如果不需

我需要写一个.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]
,但如果不需要的话,我不想这样做


谢谢。

您可以使用
+
而不是
*
来确保它与登录页不匹配。您还需要
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