让mod_rewrite工作的问题

时间:2013-12-07 23:18:28

标签: apache .htaccess mod-rewrite redirect

我对mod_rewrite做的并不多,但我似乎无法随心所欲。我想知道是否在我的服务器上没有启用它(即使我的主机说它是。)

我有以下网址:http://dev.website.com/folder1/translate/horse我希望将其重定向到:http://dev.website.com/folder1/translate.php?word=horse

我的.htaccess以RewriteEngine开头,我尝试了各种尝试让它正常工作,但无论如何,它只显示我的主页(默认的404重定向)。

我尝试过的事情:

RewriteRule ^translate/.*$ translate.php?word=$1
RewriteRule ^translate translate.php

以及其他一些我不记得的事情,但我无法继续工作。

我使用的.htaccess文件位于folder1中。我还尝试在文件中放置随机字符以使其抛出错误,而且确实如此。

我缺少什么?我该如何正确创建此重定向?

根据请求,这是我的文件结构。

我有域名www.website.com和子域名dev.website.com。子域已设置为重定向到www.website.com/dev。因此,在这种情况下,dev.website.com/folder1/translate.php = www.website.com/dev/folder1/translate.php。我不确定如何完成屏蔽,因为它是通过我的网站主机的cpanel完成的。

1 个答案:

答案 0 :(得分:0)

您没有在括号中捕获$1,因此这应该有效:

在DOCUMENT_ROOT / .htaccess中:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^folder1/translate/(.*)$ /folder1/translate.php?word=$1 [L,QSA]

在DOCUMENT_ROOT / folder1 / .htaccess中:

RewriteEngine On
RewriteBase /folder1/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^translate/(.*)$ translate.php?word=$1 [L,QSA]