如何在子域中使用htaccess

时间:2014-05-13 19:44:49

标签: php .htaccess get

我在根目录中有一个htacess文件,如下所示。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

但现在我有一个名为fun.example.com的子域名。我想重写该子目录中的文件。与fun/test.php?id=1fun/test/1一样。我正在使用get方法。 怎么做?请注意,我在子域文件夹中没有htaccess。我读了一些教程。但无法找到所需的答案

2 个答案:

答案 0 :(得分:1)

使用以下规则在/fun/目录(我假设是fun.example.com子域的文档根)中添加一个新的htaccess文件:

Options -Multiviews
RewriteEngine On

RewriteCond %{HTTP_HOST} ^fun\.example\.com$ [NC]
RewriteCond %{THE_REQUEST} \ /+([^/]+)\.php\?id=([^&\ ]+)
RewriteRule ^ /%1/%2? [L,R]

RewriteCond %{HTTP_HOST} ^fun\.example\.com$ [NC]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f
RewriteRule ^([^/]+)/(.*)$ /$1.php?id=$2 [L]

答案 1 :(得分:1)

将此代码放在/fun/.htaccess

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+test\.php\?id=([^\s&]+) [NC]
RewriteRule ^ /test/%1? [R=302,L]

RewriteRule ^test/([0-9]+)/?$ /test.php?id=$1 [L,QSA,NC]

RewriteBase /行之后将此规则插入根目录.htaccess:

RewriteCond %{HTTP_HOST} ^fun\. [NC]
RewriteRule ^ - [L]