Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mod_重写规则不起作用(将参数从一个url传递到另一个url)_Php_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Php mod_重写规则不起作用(将参数从一个url传递到另一个url)

Php mod_重写规则不起作用(将参数从一个url传递到另一个url),php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,无论我如何修改这个语句,我都无法让它工作。例如,我想从/path/to/class/Ad234Db更改为/path/to/class?code=Ad234Db。以下各项均不起作用: RewriteRule ^/?path/to/class/([-a-zA-Z0-9]+)$ /path/to/class.php?code=$1 [L] 或 或 此外,下面仍在运行的重写语句: RewriteRule ^([^\.]+)$ $1.php [NC,L] 尝试: RewriteRule ^path/t

无论我如何修改这个语句,我都无法让它工作。例如,我想从/path/to/class/Ad234Db更改为/path/to/class?code=Ad234Db。以下各项均不起作用:

RewriteRule ^/?path/to/class/([-a-zA-Z0-9]+)$ /path/to/class.php?code=$1 [L]

此外,下面仍在运行的重写语句:

RewriteRule ^([^\.]+)$ $1.php [NC,L]
尝试:

RewriteRule ^path/to/class/([A-Z0-9]+)/?$ /path/to/class.php?code=$1 [NC,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+)/?$ $1.php [L]

你的.htaccess在哪里?您还应该显示您的完整.htaccess,因为可能存在冲突/覆盖规则。什么是不工作?你有什么错误吗?404500,…?通过稍微调整你的答案,我找到了有效的方法。谢谢
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^path/to/class/([A-Z0-9]+)/?$ /path/to/class.php?code=$1 [NC,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+)/?$ $1.php [L]