我有一个特殊的情况,我的网站是这样的
www.example.com/page.php?url=homepage。我正在尝试使用 .htaccess 文件使 url 看起来像
www.example.com/page/homepage/
隐藏 url 中的“.php?url=”部分。这可能吗?请建议。
试试这个:
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
# /anything/anything -> anything.php?url=anything
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Za-z0-9_])/([^/]*)$ /$1.php?url=$2 [L]
</IfModule>
如果
page.php
文件名始终相同,则这样做:
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
# /page/anything -> page.php?url=anything
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^page/([^/]*)$ /page.php?url=$1 [L]
</IfModule>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^page/(.*)/$ /page.php?url=$1 [L]
此代码可以隐藏您的页面名称
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ pagename.php?name=$1&id=$2 [NC,L]
.htaccess 如何删除参数排除某些页面?
我在 .htaccess 中使用以下命令成功删除 URL 的参数 重写引擎开启 RewriteCond %{QUERY_STRING} !="" 重写规则 ^(.*)$ /$1? [R=301,L]
例如:https://your-domain.com/product/apple1/?v=e14da64a5617 一定会成功的https://your-domain.com/product/apple1/
但是,它适用于所有页面。如果我只想排除以下 2 页,那么我应该如何编辑 .htaccess 命令?
网址1:https://your-domain.com/cart/ 网址2:https://your-domain.com/checkout/
希望大家能够支持我,谢谢。 阮