base_url php和.htaccess重写

时间:2014-04-29 14:49:52

标签: php .htaccess

我的.htacces

有问题

我已经从我的db.php连接中设置$base_url(),如此

<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', 'root');
define('DB_DATABASE', 'wall3');
$connection = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die(mysql_error());
$database = mysql_select_db(DB_DATABASE) or die(mysql_error());
mysql_query ("set character_set_results='utf8'");   
$path = "uploads/";
$profile_path="user_profile_uploads/";

$perpage=10; // Updates perpage

$base_url='http://www.ecoshoptr.com/';
$gravatar=0; // 0 false 1 true gravatar image
$rowsPerPage=10; //friends list
?>

问题是$base_url路由。例如:当我从此图像中单击用户个人资料图像时:

enter image description here

不会将我引导至用户个人资料。

但是,用于打开用户网址的网址。如果您查看第二张图片,您可以看到打开的页面是index.php页面,但URL地址是URL用户

enter image description here

这是我的.htaccess内线:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^ecoshoptr\.com$
RewriteCond %{REQUEST_URI} !^/$1
RewriteRule (.*) http://www.ecoshoptr.com/$1 [r=301,nc]


RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?id=$1

<div id='header'>
<img src='<?php echo $base_url;?>wall_icons/blacklogo.png'/>
<span style='float:right'>
<ul id='nav'>
<?php if($login) { ?>
<li><a href="<?php echo $index_url; ?>">Home</a></li>
<li><a href="<?php echo $base_url.$session_username; ?>">Profile</a></li>
<li><a href="<?php echo $base_url.'friends/'.$session_username; ?>">Friends</a></li>
<li>
<?php if($session_conversation_count>0) {
echo "<span id='conversation_count'>$session_conversation_count</span>";
} ?>
<a href="<?php echo $base_url.'messages.php'; ?>">Messages</a></li>
<li><a href="<?php echo $base_url.'settings.php'; ?>">Setting</a></li>
<li><a href="<?php echo $base_url.'logout.php'; ?>">Logout</a></li>
<?php } else { ?> 
<li><a href="<?php echo $index_url; ?>">Login</a></li>
<li><a href="<?php echo $index_url; ?>">Sign Up</a></li>        
<?php   } ?>
</ul>
</span>
</div>

主页,设置,注销按钮正在运行,但其他按钮无效。

我如何解决这个问题你能帮我谢谢!

2 个答案:

答案 0 :(得分:1)

尝试使用此htaccess

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*/([a-zA-Z0-9_-]+)|([a-zA-Z0-9_-]+))$ ./profile.php?username=$1 [L]

答案 1 :(得分:0)

试试这个:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?rt=$1 [L,QSA]