我有一个networking社区,现在正在增长。 我喜欢为我的networking做一个链接改造,然后我需要知道我的情况的最佳解决scheme。
现在我的htaccess看起来就像这样:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/\.]+)/?$ index.php?page=user&username=$1 [L]
你可以链接到像这个domain.com/username这样的用户,这很好。
然后我有不同的网页
… 等等。 我希望他们看起来像这样:
… 等等。
如何在不删除我的domain.com/usernamefunction的情况下制作这些漂亮的url? 你会build议什么解决scheme?
我正在考虑创build一个检查URL的文件,如果它匹配任何页面和用户等。 然后它将redirect到一个标题的位置。
如果您要重写的所有网址都是相同的终点,则可以简单地使用:
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
我正在考虑创建一个检查URL的文件,
你真的有这个文件,它是index.php
如果它匹配任何页面和用户等。 然后它会重定向到一个标题位置。
那是错的 HTTP重定向不会让你的网址看起来“漂亮”
你必须包含适当的文件,而不是重定向到。
只要改变你的规则,以更一般的一个
RewriteRule ^(.*)$ index.php [L,QSA]
你基本上有两个选择。
我一直使用选项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,“重定向与标题位置”是最糟糕的,你可以做的。 那会导致
这可以完全用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