url 扩展删除 php
url extension remove with php
我在这里进退两难...
目前我正在启动一个网站,有很多旧的 url 需要重定向到没有 .stm 扩展名的新 url。新站点是 运行ning Durpal。
例如
http://www.foo.com/foo/bar.stm --> http://www.foo.com/foo/bar
所以我进一步研究了 nginx.conf 设置,以便在 url 命中 drupal 使用的 setting.php 之前重写它。原来我的主机不允许我触摸根文件夹中的 conf 文件。但我唯一的解决办法是将其添加到 root
中的 conf 文件中
server { location / { rewrite ^(.*)\.stm$ permanent; } }
在这一点上,我 运行 别无选择,只能手动重定向 Drupal 中的每个页面(大约 650 页)
我也尝试过所有其他模块,但没有提供扩展条重定向。
我的另一个选择是使用 404 着陆页到 运行 php 并使用 .stm 重定向任何 url 并使用没有 .stm 的擦洗 url 重定向并留在404 如果它不是 .stm url.
这是我最好的选择,URL rewriting with PHP
但是仅仅对于扩展条和重定向就太复杂了?
您应该能够检查请求的 URI 是否包含“.stm”,如果是,则重定向到完全相同的 URI,并删除“.stm”。在你的 settings.php:
中加入类似的内容
if (strrpos(request_uri(), '.stm') !== FALSE) {
header("Location: " . str_replace('.stm', '', request_uri()));
exit;
}
我在这里进退两难...
目前我正在启动一个网站,有很多旧的 url 需要重定向到没有 .stm 扩展名的新 url。新站点是 运行ning Durpal。
例如
http://www.foo.com/foo/bar.stm --> http://www.foo.com/foo/bar
所以我进一步研究了 nginx.conf 设置,以便在 url 命中 drupal 使用的 setting.php 之前重写它。原来我的主机不允许我触摸根文件夹中的 conf 文件。但我唯一的解决办法是将其添加到 root
中的 conf 文件中server { location / { rewrite ^(.*)\.stm$ permanent; } }
在这一点上,我 运行 别无选择,只能手动重定向 Drupal 中的每个页面(大约 650 页)
我也尝试过所有其他模块,但没有提供扩展条重定向。
我的另一个选择是使用 404 着陆页到 运行 php 并使用 .stm 重定向任何 url 并使用没有 .stm 的擦洗 url 重定向并留在404 如果它不是 .stm url.
这是我最好的选择,URL rewriting with PHP 但是仅仅对于扩展条和重定向就太复杂了?
您应该能够检查请求的 URI 是否包含“.stm”,如果是,则重定向到完全相同的 URI,并删除“.stm”。在你的 settings.php:
中加入类似的内容if (strrpos(request_uri(), '.stm') !== FALSE) {
header("Location: " . str_replace('.stm', '', request_uri()));
exit;
}