2014-04-18 55 views
-2

第一种情况(动态链接):我有一个网址http://pqr.com/cms.php?PageId=MTE=,我想将此URL转换为http://pqr.com/hoiw-it-works。我有很多的联系就像我刚才所说,我想转换同样的方式使用php和htaccess的url重写

第二种情况(静态链接):我有一个像http://pqr.com/CustomerLogin.php一些静态链接,所以我想将其转换成http://pqr.com/login

第三种情况:我想处理页面没有找到的情况下像下面

  1. http://pqr.com/asasasa这不是我们的网站,所以应该重定向到任何404.php或index.php文件
  2. http://pqr.com/xyz.php如果没有找到,那么它应该重定向到404.php或index.php

你能提供给我这个htaccess或者有没有其他方法来重写url?

+0

可能的重复[参考:mod \ _rewrite,URL重写和“漂亮链接”解释](http://stackoverflow.com/questions/20563772/reference-mod-rewrite-url-rewriting-and-pretty-links - 解释) – deceze

+0

没有从那里得到的解决方案,这就是为什么我已经创建了新的问题。我已经检查了这个 – user3454835

+0

你的问题的哪个部分没有被回答? – deceze

回答

0

使用mod_rewrite

要重写/login/CustomerLogin.php,以下内容添加到您的.htaccess文件:

RewriteEngine On 
RewriteRule ^login/?$ CustomerLogin.php 

这在内部转换用户看到的一个服务器应该看到的网址。如果您还想要externall将用户重定向到/login,如果他们直接打电话/CustomerLogin.php,添加:

RewriteCond %{REQUEST_URI} ^/CustomerLogin\.php 
RewriteRule ^.* /login [R,L] 

参数可能太通过使用mod_rewrite

RewriteRule ^how-it-works/?$ cms.php?PageId=MTE [QSA] 

但你需要一些方法来找出正确的ID。

+0

动态它不工作。 RewriteRule^how-it-works /?$ cms.php?PageId = MTE [QSA]它应该接受动态ID – user3454835

+0

我无法为每个单独的页面提供 – user3454835

+0

但是,ID是从哪里来的?你不能仅仅从“如何运作”中猜出它。因此,您必须在您的URL中包含ID(例如'/ how-it-works - PageID')或将每个请求内部重定向到一个脚本,该脚本查找与“how-it-works”相对应的正确ID并包含像许多CMS这样的脚本都可以做到。 – Callidior