2013-08-19 198 views
0

在计算器中,网址为像 How to store post variables value动态链接到静态链接?

但是,当我们用PHP创建网页,它最有可能有一个网址像 WWW,somewebsite.com /我的空间?someid = 123

而且然后显示内容。

我想知道如何 www.somewebsite.com/mypage?someid=123

转换成 www.somewebsite.com/mypage/some_page_link_here_which_is_static

有人有想法怎么办呢?我试着先搜索这个问题,但它向我展示了c/C++/java链接:|

编辑:

我尝试了一些YouTube视频,我HTACESS代码为
RewriteEngine叙述上
的RewriteCond%(REQUEST_URI)查找/([0-9] +)/
重写规则的发现(* )/ /find.php?id=$1

这将打开一些网址像
东西/ find.php?ID = 11 到
东西/发现/ 11

.htaccess文件位于我的网站的根目录下,但仍然失败。 我做错了什么?

回答

0

许多CMS和web编程框架都支持这种用户(和搜索引擎)友好链接的实现。

在最低级别上,您可以使用在所有服务器上找到的URL重写功能。

如果您使用Apache服务器,则必须编辑.htaccess文件;用于IIS(Windows服务器)的web.config文件。

Google为url重写apache或url重写IIS。

更新: 作为一个例子,参见该溶液(从CodeIgniter借)。你当然可以用任何你想要的替换index.php,图像等。

RewriteEngine on 
RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

更新2 - 说明

至于更深入的解释,我发现有关该主题极好的介绍/教程:URL Rewriting for Beginners

希望这更有道理即上述无法解释的例子:)

+0

请检查我所做的修改。 – user2454340

+0

我也更新了我的答案,请检查一下。 –

+0

我喜欢一些解释。但无论如何,谢谢。 – user2454340

1

尝试搜索“使用htaccess更改网址”。

编辑.htaccess文件:

RewriteRule ^mypage/(A-Za-z0-9_+]) page.php?post_uri=$1 
+0

请检查我所做的编辑。 – user2454340

+0

感谢您的升级 – 2013-08-21 09:05:28

1

其称为URL重写。对于Apache Web服务器,您可以通过使用mod_rewrite扩展来实现此目的。通常开发人员使用.htaccess文件为该模块提供配置指令。

进行url重写的简单.htaccess条目如下,它将流量发送到/一个名为someother.html的文件。

RewriteEngine on 
RewriteRule ^$ /someother.html 

框架做路由最常见的方式之一是将所有来到web应用的流量路由到控制器。然后分析REQUEST_URI并使用php进行路由。这提供了比动态地在.htaccess文件上提供每个规则更动态地执行路由。

0

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

例如

www.somewebsite.com/mypage/dynamic-link-to-static-link

htaccess的部分

重写规则^我的空间/(A-ZA-z0- 9_ +])page.php文件?post_uri = $ 1 [QSA]

page.php文件部分

$ post_uri = $ mysqli-> real_escape_string($ _ GET [ 'post_uri']);

//然后就可以通过变量$ post_uri

RewriteEngine on 
RewriteCond %{REQUEST_URI} find/([0-9]+)$ 
RewriteRule /find.php?id=$1 

找出该行尝试此%(REQUEST_URI)=>%{REQUEST_URI}

+1

请检查我所做的修改。 – user2454340