我正在尝试制作个人资料页面和编辑个人资料页面。配置文件页面运行良好,URL存储在数据库中。它的工作原理如下:
localhost/postin'/profiles/username
).htaccess
文件会重定向到显示个人资料信息的profile.php
文件以上工作非常好,.htaccess文件如下所示:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w.'@\\\/-]+)$ profile.php?user=$1 [NC,L]
<Files .htaccess>
order allow,deny
deny from all
</Files>
当我 localhost / postin'/ profiles / edit / username 时会发生什么?它不适用于我当前的.htaccess
,因为它认为编辑是用户名的一部分,而实际上它只是另一个文件。我尝试了.htaccess
:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w.'@\\\/-]+)$ profile.php?user=$1 [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^edit/([\w.'@\\\/-]+)$ /profile.php?user=$1 [NC,L]
<Files .htaccess>
order allow,deny
deny from all
</Files>
但它似乎没有用! :(
所以这是我希望它做的一个简单的例子。用户的用户名是hawkeye
。所以“ hawkeye ”进入localhost/postin'/profiles/hawkeye
以获取他的个人资料。然后,为了编辑他的个人资料,他输入了localhost/postin'/profiles/edit/hawkeye
。
这个.htaccess
文件会是什么样的?谢谢! :)
更新
这是我正在使用的.htaccess:
Options +FollowSymLinks
RewriteEngine on
# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^edit/([\w.'@\\\/-]+)$ editprofile.php?user=$1 [NC,L]
RewriteRule ^([\w.'@\\\/-]+)$ profile.php?user=$1 [NC,L]
<Files .htaccess>
order allow,deny
deny from all
</Files>
当我尝试使用URL localhost / postin'/ profiles / username 和 localhost / postin'/ profiles / edit / username 时,它总是会转到 localhost / postin'/ profiles / username 无论如何......有什么想法吗? :D谢谢你
固定
Options +FollowSymLinks
RewriteEngine on
# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^edit/([\w.'@\\\/-]+)$ editprofile.php?user=$1 [NC,L]
RewriteRule ^([\w.'@\\\/-]+)$ profile.php?user=$1 [NC,L]
答案 0 :(得分:1)
您可以在:localhost/postin'/profiles/.htaccess
:
Options +FollowSymLinks
RewriteEngine on
# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^edit/([\w.'@\\\/-]+)$ editprofile.php?user=$1 [NC,L]
RewriteRule ^([\w.'@\\\/-]+)$ profile.php?user=$1 [NC,L]
重定向profiles/username
- &gt; profiles/profile.php?user=username
重定向profiles/edit/username
- &gt; profiles/editprofile.php?user=username