1

我正在尝试用 .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。

4

1 回答 1

0

这可以,在 /.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
于 2013-11-08T09:13:54.600 回答