Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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
Apache 如何强制处理…/ih/。。。作为php脚本_Apache_Url_Seo_Rewrite_Short - Fatal编程技术网

Apache 如何强制处理…/ih/。。。作为php脚本

Apache 如何强制处理…/ih/。。。作为php脚本,apache,url,seo,rewrite,short,Apache,Url,Seo,Rewrite,Short,我有很多index.php脚本使用SEO友好的arg格式,比如 example.com/path/to/index.php/opt/arg 并希望重写或强制处理程序 example.com/path/to/ih/opt/arg 从而缩短index.php部分。好吧,我想完全摆脱它,但不想回到过去 example.com/path/to/?opt&arg 格式。]这通常应该在站点上的任何目录中得到支持,而不需要修改.htaccess、alias或http.conf。在我的下一个技巧中,我将扩展PH

我有很多index.php脚本使用SEO友好的arg格式,比如

example.com/path/to/index.php/opt/arg

并希望重写或强制处理程序

example.com/path/to/ih/opt/arg

从而缩短index.php部分。好吧,我想完全摆脱它,但不想回到过去

example.com/path/to/?opt&arg

格式。]这通常应该在站点上的任何目录中得到支持,而不需要修改.htaccess、alias或http.conf。在我的下一个技巧中,我将扩展PHP的“ih”,以涵盖Perl的“ip”、Ruby的“ir”、Python的“iy”,或许还有其他。[我最初的想法只是“我”,但后来我意识到还有其他语言我也需要它。]

我尝试过使用多视图,但显然不知道我在做什么:-)我已经广泛地研究了mod_rewrite,但就是看不到如何实现这样的东西。我快速地看了一眼强制处理程序,但1)我不确定这是否真的是我的意思(因此我提前请求原谅,因为我可能使用了错误的术语),2)还有一个额外的有趣挑战,那就是运行1.3,在家里主持vs 2.2:-)

建议

蒂亚·汉德

:-D 大卫·T-G

既然您考虑使用mod_rewrite,我假设您不介意一次性更改
.htaccess
httpd.conf
,但我不想对站点上的每个index.php都这样做。(如果我错了,请纠正我!)

试试这个:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*\/)?ih(\/.*)?$ $1index.php$2 [L,QSA]

您可能不需要这两个
RewriteCond
s。在重写URL之前,他们只需检查原始URL是否作为实际文件存在于系统中。

既然您研究了使用mod_rewrite,我假设您不介意对
.htaccess
httpd.conf
进行一次性更改,但只是不想对站点上的每个index.php都这样做。(如果我错了,请纠正我!)

试试这个:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*\/)?ih(\/.*)?$ $1index.php$2 [L,QSA]

您可能不需要这两个
RewriteCond
s。他们只需检查原始URL是否作为实际文件存在于系统中,然后再重写该URL。

谢谢您的回复!我尝试了这个方法,但现在出现了一个服务器错误,在我的日志中,“由于可能的配置错误,请求超出了10个子请求嵌套级别的限制。”。想法?在.htaccess和httpd.conf中还有什么其他内容?我在我的共享主机帐户上尝试了它,它似乎起了作用,所以也许你在某个地方有另一个重写规则,它正在交互导致循环?嗨,又来了!htaccess文件中没有任何内容,您可以浏览查看我的httpd.conf和包含的testme.conf文件。我试过有第二个街区和没有第二个街区都没有变化。再次感谢,非常感谢!我使用“hello world”
test/index.PHP
,在Windows上新安装的Apache和PHP上试用了您的配置文件,但没有看到错误。我认为最好的办法可能是尝试同样的方法,如果它对所有默认设置都有效,那么逐渐添加一些东西(服务器配置,PHP脚本的一部分),直到它崩溃。那可能会缩小范围。。。我自己,如果不做类似的实验,我就没有足够的知识来诊断它。祝你好运非常感谢你,安蒂娜。我会尽快试试这个,然后回来!谢谢你的回复!我尝试了这个方法,但现在出现了一个服务器错误,在我的日志中,“由于可能的配置错误,请求超出了10个子请求嵌套级别的限制。”。想法?在.htaccess和httpd.conf中还有什么其他内容?我在我的共享主机帐户上尝试了它,它似乎起了作用,所以也许你在某个地方有另一个重写规则,它正在交互导致循环?嗨,又来了!htaccess文件中没有任何内容,您可以浏览查看我的httpd.conf和包含的testme.conf文件。我试过有第二个街区和没有第二个街区都没有变化。再次感谢,非常感谢!我使用“hello world”
test/index.PHP
,在Windows上新安装的Apache和PHP上试用了您的配置文件,但没有看到错误。我认为最好的办法可能是尝试同样的方法,如果它对所有默认设置都有效,那么逐渐添加一些东西(服务器配置,PHP脚本的一部分),直到它崩溃。那可能会缩小范围。。。我自己,如果不做类似的实验,我就没有足够的知识来诊断它。祝你好运非常感谢你,安蒂娜。我会尽快试试这个,然后回来!