[英]htaccess rewrite url from different pages
我在htaccess文件中制作此文件,以便从其他页面重写网址
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?username=$1 [QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?username=$1 [QSA]
而且效果很好..
现在我需要添加更多的脸书
你可以把facebook.com/username
这是:facebook.com/profile.php?username =
&您可以输入facebook.com/pagename,即:facebook.com/pages.php?username=
并且工作正常
从不同的页面..
我需要做这样..
有帮助吗?
RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?username=$1 [QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/$ profile.php?username=$1 [QSA]
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?username=$1 [QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?username=$1 [QSA]
您的正则表达式模式完全相同,因此您将需要一些东西来区分页面和人物(或重定向到profile.php与index.php)。
您可以通过以下两种方法之一来完成此操作。 首先,您可以将所有内容转到一个页面,我们将其称为redirect.php。 在此页面上,您可以检查id值,然后重定向。 像这样:
RewriteRule ^([a-zA-Z0-9_-]+)/?$ redirect.php?id=$1
在redirect.php中,获取$_GET['id']
并对其执行一些查询,以确定它是页面还是个人,然后使用类似以下内容的重定向:
header("Location: profile.php?username=".$_GET['id']);
如果您严格查找与Facebook相关的内容,则可以点击图表API而不是数据库,以确定其页面或个人ID。 (不确定它是否可以同时存在-但我认为不是)。
如果您没有数据库或数据源来确定它是页面还是个人,则需要在URL字符串中添加一些内容来确定,例如/ pages / {pageid},然后可以重写规则至:
RewriteRule pages/([a-zA-Z0-9_-]+)/?$ index.php?username=$1 # for pages
RewriteRule ^([a-zA-Z0-9_-]+)/?$ profile.php?username=$1 # for people
如果您无法在URL中使用某些内容,并且无法通过数据库访问它,那么您将很不幸,因为您遇到了两种相同的模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.