首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Web配置请求

Web配置请求
EN

Stack Overflow用户
提问于 2011-11-19 03:36:23
回答 2查看 1.3K关注 0票数 0

我没有太多使用web.config文件的经验,但我想做的是将所有请求重定向到index.php,只添加?url=REQUESTED_PAGE

例如

如果你去domain.com/about.php?query=string

它会将url重写为用户的domain.com/about/,但会处理urldomain.com/index.php?url=about.php&query=string

我们的想法是拥有漂亮的用户友好的urls,同时index.php确定向用户显示哪个页面。(我使用的是smarty,所以要使用哪个模板)

编辑:我正在寻求web.config的帮助,而不是.htaccsess,我被限制在托管的客户端,不幸的是,这不是apache,我能找到的唯一可以或不能与iis7.5一起工作的模块是gb45,我无法获得资金:(

编辑:我的最新尝试是

代码语言:javascript
复制
<rules>
  <rule name="page proc" stopProcessing="true">
    <match url="domain.org.uk(.*?)\?(.*)" />
    <action type="Redirect" url="{R:0}?url={R:1}?{R:2}" />
  </rule>
</rules>

我想我已经很接近了,但仍然没有工作。

已解决::!最终结果!

代码语言:javascript
复制
<rewrite>
    <rules>
            <rule name="page proc">
                <match url="(.*?)\/" />
                <action type="Rewrite" url="/index.php?url={R:1}" appendQueryString="false" logRewrittenUrl="true" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    <add input="{QUERY_STRING}" pattern="(.*?)(css|js|pdf|jpg|png|gif)" negate="true" />
                </conditions>
            </rule>
        </rules>
    </rewrite>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-19 05:13:51

您需要创建一个包含以下内容的.htaccess文件:

代码语言:javascript
复制
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

这会将所有请求(除非它是现有的文件或目录)传递给您的index.php脚本,您将能够通过执行以下操作找出用户在您的PHP脚本中请求的内容:

代码语言:javascript
复制
<?php
echo $_GET['url'];
?>

因此,您可以在斜杠处拆分传递的url参数,并将其传递给正确的控制器或其他任何东西。

不重写现有文件或目录的原因是静态文件,如图像、样式表、JavaScript文件等。否则,对那些确实存在的文件的请求仍将传递到index.php脚本。

此外,RewriteRule后的QSA标志允许您继续在URL中使用查询字符串,如果您希望搜索表单和分页,如果您也喜欢对这些内容使用$_GET参数,而不是URL段。

票数 -1
EN

Stack Overflow用户

发布于 2011-11-19 04:52:09

以下是您所要求的解决方案:

代码语言:javascript
复制
RewriteRule (.*) index.php?url=$1 [NC,L]

请告诉我它能不能用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8188112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档