Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在url上隐藏.php和id_Php_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

如何在url上隐藏.php和id

如何在url上隐藏.php和id,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我想更改此URL: http://example.com/pages.php?sports_id=23 为此: http://example.com/pages/sports/23 我的代码是: RewriteEngine On RewriteCond %{REQUEST_FILENAME}.php -f RewriteCond %{REQUEST_URI} !/$ RewriteRule ^(.*)$ $1\.php ErrorDocument 404 /404.php 将此行添加

我想更改此URL:

http://example.com/pages.php?sports_id=23
为此:

http://example.com/pages/sports/23
我的代码是:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule ^(.*)$ $1\.php


ErrorDocument 404 /404.php

将此行添加到.htacess

RewriteRule ^pages$ pages.php [L]
但我认为将GET部分改为斜杠是不可能的。
(如果我错了,请更正)。

如果您还没有,您首先需要将应用程序中的URL更改为
/pages/sports/23
。然后使用.htaccess将“漂亮”URL重写回真实URL

要将
/pages/sports/23
重写回
/pages.php?sports_id=23
,您可以执行以下操作:

RewriteRule ^pages/sports/23$ pages.php?sports_id=23 [L]
但是,您可能需要更通用的东西。但有多普遍?你的问题不清楚哪些元素是可变的。像下面这样的东西可能适合你

RewriteRule ^([^/])+/([^/])+/(\d{3})+$ $1.php?$2_id=$3 [L]

MegaXLR我不明白?我尝试了.htaccess中的所有重写行,但什么也没发生。它显示错误并显示url,如:此指令如何处理url的
/sports/23
部分?url仍然是相同的:我在我的链接中使用此链接:@FhdKaxi您应该在链接中使用“pretty”url。例如,
。然后使用.htaccess中的代码将这个“漂亮”的URL重写为真实(丑陋)的URL。