Php URL重写HTACCESS获取

Php URL重写HTACCESS获取,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,目前我正在使用 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^\.]+)$ $1.php [NC,L] 改写 我该如何添加,以便它也可以重写为 我并不完全理解代码。谢谢 .htaccess <IfModule mod_rewrite.c> RewriteEngine On #RewriteBase / RewriteC

目前我正在使用

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [NC,L]
改写

我该如何添加,以便它也可以重写为

我并不完全理解代码。谢谢

.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . 1.php [L]
</IfModule>
.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . 1.php [L]
</IfModule>

您可以使用这些规则添加另一个带有查询字符串的url,以重定向到SEO友好的url。还有一些额外的规则来防止使用旧的URL样式

RewriteEngine On

#redirect old url to pretty url
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\ /+(.+)\.php\?category=([^&\s]+)
RewriteRule ^ /%1/%2? [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\ /+(.+)\.php
RewriteRule ^ /%1? [R=301,L]

#if request is for a real file or real directory do nothing.
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

#internally redirect uri to php
RewriteRule ^([^/]+)/([^/]+)/?$ $1.php?category=$2 [NC,L]
RewriteRule ^([^\.]+)/?$ $1.php [NC,L]

您可以使用这些规则添加另一个带有查询字符串的url,以重定向到SEO友好的url。还有一些额外的规则来防止使用旧的URL样式

RewriteEngine On

#redirect old url to pretty url
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\ /+(.+)\.php\?category=([^&\s]+)
RewriteRule ^ /%1/%2? [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\ /+(.+)\.php
RewriteRule ^ /%1? [R=301,L]

#if request is for a real file or real directory do nothing.
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

#internally redirect uri to php
RewriteRule ^([^/]+)/([^/]+)/?$ $1.php?category=$2 [NC,L]
RewriteRule ^([^\.]+)/?$ $1.php [NC,L]

你在向后看。你不会把一个丑陋的url重写成一个漂亮的url。您的代码应该将漂亮的代码发送到客户端,例如,
,然后将它们转换回丑陋的代码以供内部使用。modwrite只处理传入的URL。它不能翻译外向的。是的,这很有道理,谢谢。虽然我相当肯定我目前的htaccess代码已经做到了这一点,对吗?我刚刚理解了它的错误之处?您需要
重写规则^/(.*)/(.*)$$1.php?category=$2
左右。您正在回顾它。你不会把一个丑陋的url重写成一个漂亮的url。您的代码应该将漂亮的代码发送到客户端,例如,
,然后将它们转换回丑陋的代码以供内部使用。modwrite只处理传入的URL。它不能翻译外向的。是的,这很有道理,谢谢。虽然我相当肯定我目前的htaccess代码已经做到了这一点,对吗?我刚刚理解了它的错误之处?你应该有
rewriterule^/(.*)/(.*)$$1.php?category=$2
左右。这看起来很好,谢谢,这正是我想要的,但是当我尝试它并链接到它时,似乎不会去其他地方,其他的都会起作用,加上注释来解释它的功能,rewriterule^([^/]+)/([^\.]+)/?$$1.php?collection=$2[NC,L]是罪魁祸首,如果您尝试访问,则“将旧的url重定向到漂亮的url”部分实际上指向,但一旦您访问,该文件就不存在,因此它似乎无法实际访问products.php或其他可能出现的问题,有什么建议吗?谢谢进一步检查后,它似乎试图访问/products.php.phpWhen出现这种情况/products.php.php?使用漂亮的URL?是的,仅当访问时,不使用也有一些奇怪的事情,如果我完全删除我的htaccess代码,它仍然指向并工作,非常混乱我修改了代码,以实现从第二位到最后一位的重写规则。试试看。首先清除浏览器缓存或使用其他浏览器。这可能会导致奇怪。这看起来很好,谢谢,这正是我想要的,但是当我尝试它并链接到它时,它似乎不去,否则其余的工作,大加上解释它做什么的注释是^([^/]+)/([^\.]+)/?$$1.php?集合=$2[NC,L]是罪魁祸首,“将旧的url重定向到漂亮的url”部分实际上指向如果您尝试访问,但该文件在您访问后不存在,因此它似乎无法实际访问products.php或其他可能出错的内容,有什么建议吗?谢谢进一步检查后,它似乎试图访问/products.php.phpWhen出现这种情况/products.php.php?使用漂亮的URL?是的,仅当访问时,不使用也有一些奇怪的事情,如果我完全删除我的htaccess代码,它仍然指向并工作,非常混乱我修改了代码,以实现从第二位到最后一位的重写规则。试试看。首先清除浏览器缓存或使用其他浏览器。这可能是造成这种奇怪的原因。