我一直很难让它真正发挥作用。所以我使用的CMS通过自己的管理工具使用“漂亮的URL”,因此生成的.htaccess
文件已经预先提供了重写条件。现在这可行,但它仅适用于CMS生成的页面,它们是index.php
的扩展。例如,index.php?id=maps
很好地显示为www.siteurl.com/maps/
而不是www.siteurl.com/index.php?id=maps
。
现在我的问题是我有大约1900多个产品页面是从查询字符串生成的。
例如,我的页面网址看起来像:
https://www.siteurl.com/item.php?id=0012345&pg=author-title
理想情况下,我希望网址为:
https://www.siteurl.com/0012345/author-title.html
我已经尝试了一些mod_rewrite生成器来给我正确的语法,但到目前为止还没有任何工作。
目前在我的.htaccess
文件中是预先存在的语言:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /?([A-Za-z0-9_-]+)/?$ index.php?id=$1 [QSA,L]
我把它改成了这样的东西:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /?([A-Za-z0-9_-]+)/?$ index.php?id=$1 [QSA]
RewriteRule ^([^/]*)/([^/]*)\.html$ /item.php?id=$1&pg=$2 [QSA,L]
但它不起作用。我刚收到一个404
页面。请告诉我我哪里错了。感谢。
答案 0 :(得分:0)
尝试用index.php替换/index.php。
什么样的反直觉是您需要Apache服务器配置中的前导斜杠,但必须在htaccess中省略它。