[英].htaccess - Remove www, force https, remove php and remove trailing slash
[英].htaccess remove .php and force trailing slash
我的根文件夹中有文件。 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。 我可以没有拖尾的斜线生活。
你的病情:
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
具有相同的文档根目录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.