我的根文件夹中有文件。 jobs.php
,contact.php
。
我希望能够使用.htaccess删除.php
扩展名并强制使用尾部斜杠/
。因此,www.domain.com/jobs/
和www.domain.com/contact/
会转到各自的页面。
另外,我希望jobs.domain.com
指向www.domain.com/jobs/
<IfModule mod_rewrite.c>
Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteBase /
RewriteRule ^(rosquillos)/$ $1 [L,R=301,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
</IfModule>
这是我到目前为止所做的,也是我尝试过的。我似乎无法让它发挥作用。
任何帮助都会很棒。
编辑:
我想重新解释一下我的问题。现有代码为我删除了.php
扩展,我现在真正需要的是将子域指向正确文件的附加规则:即。 jobs.domain.com
指向jobs.php。我可以没有拖尾的斜线生活。
答案 0 :(得分:2)
你的情况:
RewriteCond %{REQUEST_FILENAME}\.php -f
如果您的网址以尾部斜杠结尾,将失败。但是,如果您只有jobs
和contact
,那么您只需要:
RewriteEngine On
# add trailing slash and redirect browser
RewriteRule ^([^/]+)$ /$1/ [L,R=301]
RewriteRule ^([^/]+)/$ /$1.php [L]
# redirect direct access to php files:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+)\.php
RewriteRule ^ /%1/ [L,R=301]
哦,我忘了:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com$ [NC]
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^ /%1.php [L]
假设*.domain.com
与www.domain.com
具有相同的文档根目录。