Php 重写URL以隐藏?get=in.htaccess
这是我网站的结构:Php 重写URL以隐藏?get=in.htaccess,php,.htaccess,url,url-rewriting,get,Php,.htaccess,Url,Url Rewriting,Get,这是我网站的结构: website.com/events/beachparty?date=1224 website.com/events/poolparty?date=0101 website.com/events/boatparty?date=1105 有很多不同的页面,我都想在上面使用get功能 我想使用htaccess重写URL,以便可以像这样加载它们: website.com/events/beachparty/1224 website.com/events/poolparty/010
website.com/events/beachparty?date=1224
website.com/events/poolparty?date=0101
website.com/events/boatparty?date=1105
有很多不同的页面,我都想在上面使用get功能
我想使用htaccess重写URL,以便可以像这样加载它们:
website.com/events/beachparty/1224
website.com/events/poolparty/0101
website.com/events/boatparty/1105
这是否可能,而不必为每个页面创建单独的规则
提前谢谢
这是否可能,而不必为每一项创建单独的规则
页面
是的,您可以使用正则表达式,即:
RewriteEngine On
RewriteRule ^events/page([0-9]+)/([0-9]+)/?$ /events/page$1?date=$2 [L]
以上内容将重写:
www.yoursite.com/events/page99/123
到
注意事项:
([0-9]+)
将匹配一个或多个(+
)数字/?
$
表示行(url)的结尾[L]
=最后,apache将停止处理进一步的规则根据您的评论进行更新:
RewriteEngine On
RewriteRule ^events/([0-9a-zA-Z]+)/([0-9]+)/?$ /events/$1.php?date=$2 [L]
RewriteRule ^events/([0-9a-zA-Z]+)/?$ /events/$1.php [L]
[0-9a-zA-Z]
-将匹配从a
到Z
或a
到Z
的任何数字或字母,1次或更多次尝试
RewriteEngine On
RewriteRule ^events/beachparty/([0-9]+)/?$ /events/beachparty?date=$1 [L]
RewriteRule ^events/poolparty/([0-9]+)/?$ /events/beachparty?date=$1 [L]
RewriteRule ^events/boatparty/([0-9]+)/?$ /events/beachparty?date=$1 [L]
谢谢你的回复!然而,有一个小问题。我以“page1”等为例。这些页面有不同的名称,其中没有任何数字。有解决办法吗?谢谢,我用一个更好的例子改变了这个问题,说明了页面名称是什么样的。感谢againIt给了我一个错误“请求的URL/events/boatparty/0101.php在此服务器上找不到”。我的htaccess现在看起来是这样的:“RewriteEngine on RewriteCond%{REQUEST_FILENAME}!-f RewriteRule^([^\.]+)$$1.php[NC,L]RewriteRule^ events/page([0-9a-zA-Z]+)/([0-9]+)/?$/events/page$1?date=$2[L]”许多网站
website.com/events/beachparty
或website.com/events/beachparty.php
?CSS的快速更新。我将路径更改为绝对路径,现在工作正常!谢谢“不必为每个页面创建单独的规则,这是可能的吗?”是的,这是可能的
RewriteEngine On
RewriteRule ^events/beachparty/([0-9]+)/?$ /events/beachparty?date=$1 [L]
RewriteRule ^events/poolparty/([0-9]+)/?$ /events/beachparty?date=$1 [L]
RewriteRule ^events/boatparty/([0-9]+)/?$ /events/beachparty?date=$1 [L]