Mod_rewrite,检查字符串是否为空

时间:2014-07-30 11:41:39

标签: .htaccess mod-rewrite

我需要写一个.htaccess文件来重写所有域名之后的网址。

例如RewriteRule ^(.*)$ index.php?page=course&course=$1 [L]

但是这也会将example.com发送到该重写的网址,我不希望这样。我希望它仅在域名之后才能重新填充它,例如example.com/CITA180

我知道我可以做example.com/c/CITA180然后做RewriteRule ^c/(.*)$ index.php?page=course&course=$1 [L]但我不想这样做,如果我不需要的话。

感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用.+代替.*来确保它与目标网页不匹配。您还需要RewriteCond %{REQUEST_FILENAME} !-f条件才能避免匹配默认目标网页:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?page=course&course=$1 [L]

答案 1 :(得分:0)

添加正则表达式条件:RewriteCond %{REQUEST_FILENAME} REGEX

您的情况:RewriteCond %{REQUEST_FILENAME} [A-Z]
这将检查它是否包含任何字符。

未进行文件检查:RewriteCond %{REQUEST_FILENAME} !-f