我希望有一个PHP文件捕获并管理用户访问时会发生什么:
http://profiles.mywebsite.com/的 sometext 的
sometext 不一。
E.g。它可以是 someuser ,它可以是 john 等等,然后我想要一个PHP文件来处理来自该结构的请求。
我的主要目标是让某个PHP文件将我的网站用户重定向到相应的配置文件,但他们的配置文件与该URL结构不同。我的目标是为用户提供一种易于记忆的个人资料网址。
感谢那些回答的人!
答案 0 :(得分:15)
在Apache配置文件[VirtualHost或Directory指令]中,或者在.htaccess文件中放入以下行:
Options -MultiViews
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L,NC,QSA]
</IfModule>
它将无声地将所有与上述代码中的有效文件名或目录(RewriteCond
'对应的传入请求重定向到index.php文件)。另外,如您所见,还需要禁用MultiViews
选项才能重定向工作 - 它通常与我放在那里的RewriteCond
这两个{。}}冲突。
在index.php内,您可以通过REQUEST_URI
变量访问$_SERVER['REQUEST_URI']
数据。您不应该通过GET
传递任何URI,因为它可能会以不希望的方式污染您的查询字符串数据,因为我们的RewriteRule中的[QSA]
参数处于活动状态。
答案 1 :(得分:4)
您应该使用重写规则..
在apache(.htaccess)中,类似这样:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L]
</IfModule>
然后在你的index.php中你可以在php代码中读取$ _GET ['url']。
答案 2 :(得分:0)
您可以使用.htaccess文件(http://httpd.apache.org/docs/1.3/howto/htaccess.html)将您的网址重写为profiles.websites.com/index.php?page=sometext。然后你可以用index.php中的sometext做你想做的事。
答案 3 :(得分:0)
一个明显的方法是通过404 errorDocument - 保存所有与mod_rewrite混淆的东西。
答案 4 :(得分:-4)
如果您还没有听说过MVC,它是时候听到它,从CodeIgniter开始,它最简单且非常快,使用默认控制器,您可以使用类似的URL
domain.com/usernam/profile
domain.com/usernam/profile/edit
domain.com/usernam/inbox
domain.com/usernam/inbox/read/messageid
或明智地使用.htaccess