【发布时间】:2014-12-18 18:55:35
【问题描述】:
我必须对网站进行网站结构清理... http://dev.514hebergement.com/
寻找 htaccess 指令将所有页面 url 重写为更友好的 url 结构,而无需移动文件夹层次结构中的实际页面。
所以 /pages/pagename.cfm 中的每个页面
将其地址重写为 /pagename/
并同时响应 /pagename/ 和 /pages/pagename.cfm url。
请记住,我需要页面名称是动态的,而不是在 htaccess 指令中硬编码。
非常感谢!
我当前的 htaccess 位于网站的根目录:
Options +FollowSymLinks
RewriteEngine on
# DROP THE INDEX FILENAME #
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.cfm($|\ |\?)
RewriteRule ^ /%1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)INDEX\.CFM($|\ |\?)
RewriteRule ^ /%1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)INDEX\.cfm($|\ |\?)
RewriteRule ^ /%1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.CFM($|\ |\?)
RewriteRule ^ /%1 [R=301,L]
# v3 PAGES #
RedirectPermanent /Hebergement-Internet-Montreal/ /
RedirectPermanent /Hebergement-Web-Montreal/ /
RedirectPermanent /Hebergement-Web-Montreal/commander-hebergement.cfm /commander.cfm
RedirectPermanent /hebergement-php.cfm /forfaits-linux.cfm
RedirectPermanent /Hebergement-Web-Montreal/faq.cfm /faq.cfm
RedirectPermanent /Hebergement-Web-Montreal/termes.cfm /termes.cfm
RedirectPermanent /Hebergement-Internet-Montreal/contact.cfm /contact.cfm
# SOLUTIONS-TECHNOLOGIES #
RedirectPermanent /hebergement-linux.cfm /hebergement-web-linux.cfm
RedirectPermanent /hebergement-coldfusion.cfm /hebergement-web-coldfusion.cfm
RedirectPermanent /hebergement-windows.cfm /hebergement-web-windows.cfm
RedirectPermanent /hebergement-mysql.cfm /hebergement-web-mysql.cfm
RedirectPermanent /hebergement-perl.cfm /hebergement-web-perl.cfm
RedirectPermanent /hebergement-php.cfm /hebergement-web-php.cfm
# ARCHIVED PAGES #
RedirectPermanent /Hebergement-Internet-Montreal/promotions.cfm /
RedirectPermanent /promotions.cfm /
RedirectPermanent /hebergement-asp.cfm /forfaits-windows.cfm
我在地址栏中输入的确切地址是: http://dev.514hebergement.com/pages/hebergement-web-montreal-qualite.cfm
导致 url 重写为: /pages/hebergement-web-montreal-qualite
我想要这样: /hebergement-web-montreal-qualite/
好的,在重写后的 url 中添加了斜杠 ->重写规则 ^ /%1/ [R=302,L,NE]
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} \s/+pages/(.+?)\.cfm[\s?] [NC]
RewriteRule ^ /%1/ [R=302,L,NE]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/pages/$1\.cfm -f [NC]
RewriteRule ^(.+?)/?$ pages/$1.cfm [L]
所以最后一步是将根页面重定向到 /pages/pagename.cfm 文件...
这可以是动态的还是我必须独立列出所有页面?
【问题讨论】:
标签: .htaccess mod-rewrite url-rewriting