使用.htaccess更改PHP获取url
我的使用.htaccess更改PHP获取url,php,html,.htaccess,Php,Html,.htaccess,我的index.php文件从数据库中拖出一个文章列表,目标是用户可以单击它们来查看完整的文章。链接如下所示: echo "<tr><td colspan='2'><a href='"."article.php?type=".$type."&id=".$id."&title=".$title."'>".$title."</a></td></tr>"; http://example.org/article.ph
index.php
文件从数据库中拖出一个文章列表,目标是用户可以单击它们来查看完整的文章。链接如下所示:
echo "<tr><td colspan='2'><a href='"."article.php?type=".$type."&id=".$id."&title=".$title."'>".$title."</a></td></tr>";
http://example.org/article.php?type=news&id=2&title=second-article-test
index.php
文件中的所有文章都链接到同一目录中的article.php
目标是使更友好的URL如下所示:
http://example.org/news/2/second-article-test
我一直在使用一些.htaccess配置,包括:
RewriteEngine On
RewriteCond %{REQUEST_FILE} !-f
RewriteCond %{REQUEST_FILE} !-l
RewriteCond %{REQUEST_URI} !^/article\.php [NC]
RewriteRule ^(.+)$ /article.php/$1 [L]
及
但我似乎无法让它工作
我的两个问题是:
example.org/type/id/title
将变量GET links更改为更友好的article.php
文件我试过大约20种变体,每次都有问题,如果有人知道如何解决这些问题,请尝试解释一下,以便我下次知道,谢谢 不应将变量映射的逻辑放入.htaccess文件中
查看上的stackoverflow问题,然后您需要编写某种类型的FrontController(您需要解析$\u SERVER['REQUEST\u URI'],并确定在何处将路径元素解压为变量)。但实际上,这已经做了很多次了,你应该研究一个框架来为你做这件事。如果您想要一些非常简单的东西,请查看或。您不应该将变量映射的逻辑放入.htaccess文件中
查看上的stackoverflow问题,然后您需要编写某种类型的FrontController(您需要解析$\u SERVER['REQUEST\u URI'],并确定在何处将路径元素解压为变量)。但实际上,这已经做了很多次了,你应该研究一个框架来为你做这件事。如果您想要一些非常简单的东西,请查看或。您不应该将变量映射的逻辑放入.htaccess文件中
查看上的stackoverflow问题,然后您需要编写某种类型的FrontController(您需要解析$\u SERVER['REQUEST\u URI'],并确定在何处将路径元素解压为变量)。但实际上,这已经做了很多次了,你应该研究一个框架来为你做这件事。如果您想要一些非常简单的东西,请查看或。您不应该将变量映射的逻辑放入.htaccess文件中
查看上的stackoverflow问题,然后您需要编写某种类型的FrontController(您需要解析$\u SERVER['REQUEST\u URI'],并确定在何处将路径元素解压为变量)。但实际上,这已经做了很多次了,你应该研究一个框架来为你做这件事。如果您想要一些非常简单的东西,请查看或。您可以使用以下功能:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/?article/?
RewriteCond %{REQUEST_FILE} !-f
RewriteCond %{REQUEST_FILE} !-l
RewriteRule ^/?(.*?)/(.*?)/(.*?)/?$ article.php?type=$1&id=$2&title=$3 [QSA,L]
# example.org/type/id/title
你可以玩这个:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/?article/?
RewriteCond %{REQUEST_FILE} !-f
RewriteCond %{REQUEST_FILE} !-l
RewriteRule ^/?(.*?)/(.*?)/(.*?)/?$ article.php?type=$1&id=$2&title=$3 [QSA,L]
# example.org/type/id/title
你可以玩这个:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/?article/?
RewriteCond %{REQUEST_FILE} !-f
RewriteCond %{REQUEST_FILE} !-l
RewriteRule ^/?(.*?)/(.*?)/(.*?)/?$ article.php?type=$1&id=$2&title=$3 [QSA,L]
# example.org/type/id/title
你可以玩这个:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/?article/?
RewriteCond %{REQUEST_FILE} !-f
RewriteCond %{REQUEST_FILE} !-l
RewriteRule ^/?(.*?)/(.*?)/(.*?)/?$ article.php?type=$1&id=$2&title=$3 [QSA,L]
# example.org/type/id/title