我正在尝试将用户重定向到个人资料页面(profile.php)
这是链接
该文件位于
~/profile.php
如果我运行此链接,则可以使用
https://dev-website.com/profile.php?username=name_of_user
这是我的剧本
Options +FollowSymlinks
RewriteEngine On
Options -Indexes
RewriteCond %{REQUEST_URI} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !index.html$
RewriteRule ^(.+[^/])(.*)$ https://dev-website.com/profile.php?username=$1 [L]
我收到此错误
未找到
在此服务器上找不到请求的URL / name_of_user 。
Apache / 2.4.7(Ubuntu)服务器,位于dev-website.com端口443
请帮助
答案 0 :(得分:0)
更改 .htaccess:
Options +FollowSymlinks
RewriteEngine On
Options -Indexes
RewriteCond %{REQUEST_URI} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !index.html$
RewriteRule ^(.+[^/])(.*)$ https://dev-website.com/profile.php [L] # <- change
在 profile.php 中,获取username
,并执行以下用户特定任务:
<?php
if( isset($_GET['username'] ) {
$username = $_GET['username'];
// do whatever you want as user specific staff here
}
所以,链接:https://dev-website.com/profile.php?username=name_of_user
完美地工作。
答案 1 :(得分:0)
如果你想在认证后这样做,你应该这样做:
if(isValidateUser($username, $pass)){
header('HTTP/1.0 301');
header('Location: https://dev-website.com/profile.php?username='.$username));
die();
}
但如果您坚持使用.htaccess,请在适当的条件后尝试使用此规则:
RewriteRule ^(.+[^/])(.*)$ /profile.php?username=$1 [R=301,L]
答案 2 :(得分:0)
Options -Indexes -MultiViews +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !index.html$
RewriteRule ^(.+[^/])(.*)$ profile.php?username=$1 [L,NC,QSA]