是否可以使用.htaccess将六位数的URL发送到脚本,但将所有其他无效的URL作为404s处理?

Jas*_*ith 3 php .htaccess redirect

是否可以使用.htaccess通过将所有六位数URL发送到脚本来处理它们,但是将每个其他无效URL作为错误404处理?

例如:

http://mywebsite.com/132483
Run Code Online (Sandbox Code Playgroud)

将发送至:

http://mywebsite.com/scriptname.php?no=132483
Run Code Online (Sandbox Code Playgroud)

http://mywebsite.com/132483a or
http://mywebsite.com/asdf
Run Code Online (Sandbox Code Playgroud)

将被处理为404错误.

我现在通过自定义PHP 404脚本工作,但它有点kludgy.在我看来,.htaccess可能是一个更优雅的解决方案,但我无法弄清楚它是否可能.

Ada*_*son 11

在您的htaccess文件中,输入以下内容

RewriteEngine On
RewriteRule ^([0-9]{6})$ /scriptname.php?no=$1 [L]
Run Code Online (Sandbox Code Playgroud)

第一行打开mod_rewrite引擎.()括号将内容放入$ 1 - successive()将填充$ 2,$ 3 ......等等.[0-9] {6}表示查找一个长度为6个字符的字符串,仅包含字符0-9.

最后的[L]使这成为最后一条规则 - 如果适用,规则处理将停止.

哦,^和$标记传入的uri的开始和结束.

希望有所帮助!