我需要
从我网站上的所有网址中删除文件扩展名(mywebsite.com/about.html>> mywebsite.com/about /)
始终在网址末尾添加尾随/(mywebsite.com/about>> mywebsite.com/about /)
允许例外,其中一个导航项链接到pdf,而不是html文档(mywebsite.com/calendar.pdf>> mywebsite.com/calendar/
允许子域名转到他们的文件夹而不是被重写(我的文件夹树是public_html>我的主站点文件和dev文件夹>(在dev文件夹里面)index.html)我需要子域名链接到那个dev文件夹,当前网址重写将dev.mywebsite.com更改为public_html / dev.html
这是我目前正在黑客攻击的htaccess文件:
RewriteEngine On
RewriteRule ^calendar/?$ files/2013-2014_calendar.pdf
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
抱歉,这可能是重复或半复制。我尽可能多地环顾四周,但找不到任何适用于我的情况或我理解的东西。谢谢你们!
答案 0 :(得分:1)
试试这段代码:
RewriteEngine On
RewriteBase /
# skip dev. subdomain
RewriteCond %{HTTP_HOST} ^dev\. [NC]
RewriteRule ^ - [L]
# calendar rule
RewriteRule ^calendar/?$ files/2013-2014_calendar.pdf [L]
# hide .html rules
RewriteCond %{THE_REQUEST} \s/+(.+?)\.html[\s?] [NC]
RewriteRule ^ %1/ [R=301,L,NE]
# add a trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.html -f
RewriteRule ^(.+?)/?$ $1.html [L]