动态链接到静态链接?

时间:2013-08-19 09:53:12

标签: php get dynamic-pages static-pages

在stackoverflow中,页面网址就像 How to store post variables value

但是当我们使用php创建网页时,它很可能有一个网址 万维网,somewebsite.com /我的空间?someid = 123

然后显示内容。

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

成     www.somewebsite.com/mypage/some_page_link_here_which_is_static

任何人都知道该怎么做?我首先尝试搜索这个问题,但它向我展示了c / c ++ / java links:|

编辑:

我尝试了一些youtube视频,我的HTACESS代码是
    重写引擎     RewriteCond%(REQUEST_URI)找/([0-9] +)/
    RewriteRule find(。*)/ /find.php?id=$1

会将一些网址变成像 什么/ find.php?ID = 11 到
something / find / 11

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

4 个答案:

答案 0 :(得分:1)

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

编辑.htaccess文件:

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

答案 1 :(得分:1)

它叫做url-rewriting。对于apache Web服务器,您可以使用mod_rewrite扩展来实现此目的。通常,开发人员使用.htaccess文件为此模块提供配置指令。

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

RewriteEngine on
RewriteRule ^$ /someother.html

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

答案 2 :(得分:0)

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

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

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

Google for 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

希望上述无法解释的例子更有意义:))

答案 3 :(得分:0)

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

例如

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

.htaccess part

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

page.php部分

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

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

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

试试这个%(REQUEST_URI)=&gt; %{REQUEST_URI}