我想重写一些动态页面的网址,其中数据从像“这是一个链接”slu taken的数据库中获取。htaccess动态URL重写与.html扩展基于URL选择
Options +FollowSymlinks
RewriteEngine On
RewriteBase /testweb/
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^(.*)$ faq_pages.php?page=$1 [QSA,L]
它正常工作与http://www.test.com/testweb/this-is-a-link
但我需要改变任何基于链路上的重写规则如下点击。
http://www.test.com/testweb/faq/this-is-a-link, 'testweb /消息/这个-IS-另一个链路', '/ testweb /证明书/测试链路'
的 “faq_pages.php” 在上面的重写规则应改为“news_pages.php”。我如何动态获取它,以便我可以使用相同htaccess的每个页面,或者如何在htaccess中检查并重写值到不同的页面。
也请指教我如何纠正下面的代码。
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)\.html$ faq_pages.php?page=$1
我需要显示HTML的URL像“/testweb/this-is-a-link.html”或“/testweb/faq/this-is-a-link.html”
地址栏编辑:在Jon Lin的帮助下,我更新了我的代码,如下所示。
Options +FollowSymlinks
RewriteEngine On
RewriteBase /testweb/
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^faq/(.*?)/?$ faq_pages.php?page=$1 [QSA]
现在都低于条件下工作: /testweb/faq/another-faq-test.html,
/testweb/faq/another-faq-test.html/
正如我不没有名称为'faq'的任何子文件夹,根文件夹中的模板文件(images/css/js等)未加载。 我该如何解决它?
感谢你
嗨,谢谢你的回答。我已经使用RewriteRule^faq /(.*)/$ faq_pages.php?id = $ 1 [QSA]和RewriteRule^faq /(.*)$ faq_pages.php?id = $ 1 [QSA]来重写testweb/faq/another -faq-test.html /和testweb/faq/another-faq-test.html。请告诉我,如果这是正确的做法。另外请帮我忽略/重写'faq'文件夹,因为目前的CSS或图像没有加载,因为URL中有'faq /'。非常感谢 – user2669827
@ user2669827而不是使用2个规则,只需在'/'之后加一个'?'即可。如果你在'/ faq /'中请求一个静态文件,那么2个重写条件会阻止应用该规则 –
嗨,再次感谢。 RewriteRule^faq /(.*)/?$ faq_pages.php?id = $ 1 [QSA]不适用于/testweb/faq/another-faq-test.html/。我只使用'faq /'和'news /'来检查url并重写到不同的页面。我没有任何有这些名字的文件夹。如何忽略它或指定它们不是目录..现在URL查找文件夹'faq' – user2669827