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]