如何使用htaccess从空目录重写文件

时间:2014-03-14 17:24:12

标签: php regex apache .htaccess mod-rewrite

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /cdsite/register/
RewriteRule ^.*$ /cdsite/register/register.php [L]
</IfModule>

这是我的.htaccess文件的内容。如果可能的话,我想做的是从注册目录指定后的任何输入重定向到register.php文件,包括没有输入(即myawesomesite.com/cdsite/register/或myawesomesite.com/cdsite/register/randominput )

我尝试过无输入或随机输入,但都没有工作。我在MAMP本地服务器上测试,我的其他htaccess重写工作正常。我的htaccess文件位于注册目录中。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Rewrite all other URLs to register.php
RewriteRule .* /cdsite/register/register.php [L]

您在此处所做的是检查并查看他们尝试访问的文件是否确实存在。如果该文件不存在,则重定向到register.php。我添加此内容的原因是因为您在标题中说该目录为空,但是,您在该目录中引用register.php。希望这个文件存在。

如果您的路径出现问题或者可能没有正确重定向,您可以尝试使用完整的网址:

RewriteRule .* http://www.domain.com/cdsite/register/register.php [L]