我在根目录中有一个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=1
到fun/test/1
一样。我正在使用get方法。
怎么做?请注意,我在子域文件夹中没有htaccess。我读了一些教程。但无法找到所需的答案
答案 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]