【问题标题】:how can i force handling .../ih/... as a php script我如何强制处理 .../ih/... 作为 php 脚本
【发布时间】:2011-09-16 13:37:08
【问题描述】:

我有许多 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

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

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

建议?

TIA 和手

:-D

大卫 T-G http://justpickone.org/davidtg/email/

【问题讨论】:

    标签: apache url seo rewrite short


    【解决方案1】:

    既然您研究过使用 mod_rewrite,我假设您不介意一次性更改 .htaccesshttpd.conf,但只是不想为每个索引都这样做.php 在您的网站上。 (如果我错了,请纠正我!)

    试试这个:

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

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

    【讨论】:

    • 感谢您的回复!我试过了,但现在出现服务器错误和“由于可能的配置错误,请求超出了 10 个子请求嵌套级别的限制。”在我的日志中。想法?
    • 您的 .htaccess 和 httpd.conf 中还有什么?我在我的共享主机帐户上尝试了它,它似乎工作,所以也许你在某个地方有另一个重写规则正在交互导致循环?
    • 您好! .htaccess 文件中没有任何内容,您可以浏览 justpickone.org/davidtg/private/rewrites 以查看我的 httpd.conf 和包含的 testme.conf 文件。我已经尝试过使用和不使用第二个 块,没有任何变化。再次感谢!
    • 我在 Windows 上使用“hello world”test/index.php 在全新的 Apache 和 PHP 安装上试用了您的配置文件,但没有看到错误。我认为你最好的选择可能是尝试相同的方法,如果它适用于所有默认设置,然后逐渐添加东西(服务器配置,你的 PHP 脚本的一部分)直到它中断。这可能会缩小范围......我自己,如果不做类似的实验,我的知识不足以诊断它。祝你好运!
    • 非常感谢,antinome。我会尽快尝试,并且会回来!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-04
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 2011-09-05
    相关资源
    最近更新 更多