PHP htaccess 代替 $_GET

标签 php

我正在尝试为我的网站上的注册建立一个推荐系统。我当前的 htaccess 文件如下

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1

有没有办法做/refferall/Something 而不是只是 /Something 但也保持正常的 /Something ?我在下面的推荐中进行了尝试。 但它刚刚报道:

未找到对象! 在此服务器上找不到所请求的 URL。 如果您手动输入 URL,请检查拼写并重试。 如果您认为这是服务器错误,请联系网站管理员。

错误 404 127.0.0.1 Apache/2.4.4 (Win32) OpenSSL/1.0.1e PHP/5.5.3

================================================== =========

我尝试 htaccess /referall/something

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)referal/$1 index.php?refferal=$1
RewriteRule ^([a-zA-Z0-9_-]+)/referall/$1 index.php?refferal=$1
RewriteRule ^([a-zA-Z0-9_-]+)referall/$1 index.php?refferal=$1

完整,两者兼而有之

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?page=$1

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_-]+)referal/$1 index.php?refferal=$1
RewriteRule ^([a-zA-Z0-9_-]+)/referall/$1 index.php?refferal=$1
RewriteRule ^([a-zA-Z0-9_-]+)referall/$1 index.php?refferal=$1

最佳答案

([a-zA-Z0-9_-]+) 表示 1 个或以上字符(括号内指定类型)。

您需要的是以下htaccess(对现有部分进行了一些优化)

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?page=$1
RewriteRule ^referal/([a-zA-Z0-9_-]+)/?$ index.php?referral=$1

注意:您的推荐有一些类型(单个 f、单个 l)。

关于PHP htaccess 代替 $_GET,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20453776/

相关文章:

javascript - $.post 到 Codeigniter Controller /方法 404 页面未找到

php - SimpleXmlElement 和 XPath,获取空数组()

PHP FTP ftp_nlist 不工作,返回 bool 值 false

php - 正则表达式匹配除字母和数字以外的所有字符

php - 大家好,我正在尝试通过在 e 之间实现一个下拉菜单来使 php 表看起来更好

javascript - 当我按下表中的按钮时如何设置输入值?这里我使用 laravel 5.8

javascript - 未捕获的语法错误 : Unexpected token } even do everything right

javascript - 通过 JS 发送时,PHP 图片上传不调整大小

php - 拉拉维尔。如何查找具有特定最新相关模型的模型

PHPUnit 模拟方法返回 null