如何使用 .htaccess 隐藏 url 中传递的参数

问题描述 投票:0回答:4

我有一个特殊的情况,我的网站是这样的

www.example.com/page.php?url=homepage
。我正在尝试使用 .htaccess 文件使 url 看起来像

www.example.com/page/homepage/

隐藏 url 中的“.php?url=”部分。这可能吗?请建议。

.htaccess
4个回答
12
投票

试试这个:

<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>

4
投票
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^page/(.*)/$ /page.php?url=$1 [L]

1
投票

此代码可以隐藏您的页面名称

RewriteRule    ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$  pagename.php?name=$1&id=$2    [NC,L] 

0
投票

.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/

希望大家能够支持我,谢谢。 阮

© www.soinside.com 2019 - 2024. All rights reserved.