Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.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 重写这句话&引用;及=&引用;变成正斜杠/_Php_Html_.htaccess_Mod Rewrite - Fatal编程技术网

Php 重写这句话&引用;及=&引用;变成正斜杠/

Php 重写这句话&引用;及=&引用;变成正斜杠/,php,html,.htaccess,mod-rewrite,Php,Html,.htaccess,Mod Rewrite,我想将?和=重写为正斜杠,而不必重写整个URL。我的头脑有很多问题。htaccess,但是否可以简单地将?和=转换为/——在我看来,这是一个更简单的选择。我尝试了各种方法,但它破坏了我的.js和css文件,所以为什么我不能将这两个字符重写为/ 我从所有URL中删除了.php: # -FrontPage- RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f R

我想将
=
重写为正斜杠,而不必重写整个URL。我的头脑有很多问题。htaccess,但是否可以简单地将
=
转换为
/
——在我看来,这是一个更简单的选择。我尝试了各种方法,但它破坏了我的.js和css文件,所以为什么我不能将这两个字符重写为/

我从所有URL中删除了.php:

# -FrontPage-
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

# BEGIN GZIP
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript x-font/otf x-font/TTF x-font/eot
</ifmodule>
# END GZIP
进入


你在找这么简单的东西吗

RewriteRule ^search/([^/]+)/([^/]+)$ /search.php?=$2
将它放在当前的
重写规则
之上,它应该可以正常工作

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^search/([^/]+)/([^/]+)$ /search.php?=$2
RewriteRule ^(.*)\.php$ $1.php

谢谢,我遇到的问题是这会破坏.css和.js文件?@SethCodes这只会破坏css/js文件,如果它们与正则表达式匹配(以“search/”开头,然后在到达另一个“/”之前至少有一个字符,最后至少有一个字符不是斜杠)。如果您也不想匹配句点(以防它与js/css冲突),可以将最后一个改为
([^/\.]+)
。这意味着“不是斜杠的字符,也不是重复1到无限次的句点”。
RewriteRule^search/([^/]+)/([^/\.]+)$/search.php?$1=$2
使用它可以获取结果,但CSS和JS对我来说仍然很讨厌。是否有其他方法来阻止js/css冲突?图像也会发生冲突。@SethCodes您在
RewriteCond%{REQUEST_FILENAME}\.php-f
中所说的内容是“任何请求文件名的文件加上“.php”不存在”,这意味着“script/main.js”将被计算为“script/main.js.php”,既然不存在,请尝试打开
script/main.js.php
。请检查我的编辑,看看是否有什么可以用的。谢谢,我最后也使用了
作为有效的解决方案!谢谢你的时间,伙计!
RewriteRule ^search/([^/]+)/([^/]+)$ /search.php?=$2
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^search/([^/]+)/([^/]+)$ /search.php?=$2
RewriteRule ^(.*)\.php$ $1.php