我有一个网络社区,现在它正在增长。我喜欢为我的网站进行链接改造,然后我需要知道我的案例的最佳解决方案。
现在我的htaccess看起来像这样:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)/?$ index.php?page=user&username=$1 [L]
您可以链接到 domain.com/username 这样的用户,这很不错。
然后我有不同的页面,如
......等等。我希望他们看起来像这样:
......等等。
如何在不删除domain.com/username功能的情况下制作这些漂亮的网址?你会建议什么解决方案?
我在考虑创建一个检查URL的文件,如果它匹配任何页面,用户等等。然后它将使用标题位置重定向。
答案 0 :(得分:3)
我正考虑创建一个检查URL的文件,
你实际上有那个文件,它是index.php
如果它匹配任何页面和用户等。然后它将使用标题位置重定向。
那是错的。 HTTP重定向不会使您的网址看起来“漂亮” 你必须包含适当的文件,而不是重定向到。
只需将您的规则更改为更一般的规则
RewriteRule ^(.*)$ index.php [L,QSA]
答案 1 :(得分:3)
如果您要重写的所有网址都使用相同的终点,您只需使用:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
index.php中的:
<?php
$url = $_SERVER['REQUEST_URI'];
你如何使用请求uri取决于你,你可以使用一个简单的strpos检查:
<?php
$url = $_SERVER['REQUEST_URI'];
$rules = array(
'/forum/' => 'forum',
'/foo/' => 'foo',
'/' => 'username'
);
foreach($rules as $pattern => $action) {
if (strpos($url, $pattern) === 0) {
// use action
$file = "app/$action.php";
require $file;
exit;
}
}
// error handling - 404 no route found
答案 2 :(得分:1)
你基本上有两个选择。
我一直使用选项1,因为这允许最大的灵活性和最低的mod_rewrite开销。选项2可能类似于:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^forum/([^/]+)/([^/]+)/?$ index.php?page=forum&id=$1 [L]
RewriteRule ^otherpage/([^/]+)/([^/]+)/?$ index.php?page=someotherpage&id=$1&anotherid=$21 [L]
RewriteRule ^page/([^/]+)/?$ index.php?page=$1 [L]
# …
RewriteRule ^([^/\.]+)/?$ index.php?page=user&username=$1 [L]
你说
我正在考虑创建一个检查URL的文件,如果是的话 匹配任何页面和用户等。然后它将重定向到 标题位置。
虽然“创建检查URL的文件”听起来很像选项1,但“使用标题位置重定向”是您可以做的最糟糕的事情。这将导致
答案 3 :(得分:0)
这可以完全用htaccess或php
完成//First Parameer
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?page=$1
//Second Parameter
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)$ index.php?page=$1&username=$2
RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)/$ index.php?page=$1&username=$2
在这里阅读更多相关信息:
http://net.tutsplus.com/tutorials/other/using-htaccess-files-for-pretty-urls/
http://www.roscripts.com/Pretty_URLs_-_a_guide_to_URL_rewriting-168.html