【问题标题】:rewrite htaccess for clean url and custom 404 page为干净的 url 和自定义 404 页面重写 htaccess
【发布时间】:2013-11-08 01:33:03
【问题描述】:

我正在尝试用 .htaccess 做四件事

首先是从所有文件中删除 php 扩展名

所以

www.mywebsite.com/home is written www.mywebsite.com/home.php

我想更改为错误页面,因此如果向 www.mywebsite.com/adakadabra 发出请求,并且存在像 adakabra.php 这样的页面,则使用自定义 404.php。

第三,我想有一个无用的网址,这样用户就可以拥有像这样的个人资料链接

www.mywebsite.com/Joe 

我有一个 profile.php,我使用 get 请求来获取用户名,因此重写将来自 www.mywebsite.com/joe 到 www.mywebsite.com/profile.php?username=joe

最后但并非最不重要的一点

我想要一个像 www.mywebsite.com/p/123453 这样的页面

重写为 www.mywebsite.com/p.php?photo=123453

我的网络服务器上有页面 p.php。

【问题讨论】:

    标签: .htaccess mod-rewrite


    【解决方案1】:

    这样就可以了,/.htaccess中有3组规则:

    ErrorDocument 404 /404.php
    
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^p/([0-9]+)$ /p.php?photo=$1 [QSA,L]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(Joe|Mao|Napoleon|Gandi)$ /profile.php?username=$1 [QSA,L,NC]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^.]+)$ /$1.php [QSA,L]
    

    这里是如何工作的:

    1. www.mywebsite.com/p/123453 => /p.php?photo=123453
    2. www.mywebsite.com/Joe => /profile.php?username=Joe
    3. www.mywebsite.com/home => /home.php, www.mywebsite.com/houra/foo/bar/home => /houra/foo/bar/home.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-04
      • 1970-01-01
      • 2011-10-05
      • 2012-01-19
      • 2016-04-24
      • 1970-01-01
      • 2016-11-21
      相关资源
      最近更新 更多