我正在使用htaccess重写功能,在点击时将名为cities.php的页面名称更改为链接的城市页面。例如,如果单击Aliso Viejo的链接,您将看到:
的Aliso-Viejo的板坯泄漏-detection.php
我的htaccess的重写部分如下:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301]
RewriteRule ^([a-z]+)-slab-leak-detection.php$ cities.php?city=$1&state=$2
RewriteRule ^([a-z-]+)-slab-leak-detection.php$ cities.php?city=$1&state=$2
RewriteRule ^(.*)\.html$ $1.php [L]
ErrorDocument 404 /index.php
现在重写按预期工作。问题在于我正在使用的规范链接:
$_SERVER['PHP_SELF']
回显页面网址以进行索引。它不是回显重写的页面名称,而是回显原始的cities.php名称。搜索引擎也将索引预先重写的页面。
我假设我的代码顺序错误,或者没有正确编码以静默编写而不是动态编写。
请记住,我对高级的httaccess编码非常不熟悉,我使用的代码来自我研究过的更改信息。
非常感谢任何帮助。
答案 0 :(得分:0)
我不认为$_SERVER['PHP_SELF']
的值受.htaccess重写的影响,因为它引用了文件系统,而不是URL。
如果您需要引用该网址,请使用$_SERVER['REQUEST_URI']
修改强>
刚刚找到这个相关的问题/答案:Can PHP access the .htaccess rewrite name of a file。 Regilero对所选答案的评论很有助于在输出$_SERVER['REQUEST_URI']
之前逃避using System;
namespace Program
{
class Program
{
static decimal[,] factors = new decimal[4, 4] {
/* To Milli To Micro To Nano, To Pico */
/* From Milli */ { 1m, 1000m, 1000000m, 1000000000m },
/* From Micro */ { 0.001m, 1m, 1000m, 1000000m },
/* From Nano */ { 0.000001m, 0.001m, 1m, 1000m },
/* From Pico */ { 0.000000001m, 0.000001m, 0.001m, 1m }
};
static void Main()
{
Console.WriteLine("SI converter!");
while(true)
{
Console.Write("Please, enter value: ");
decimal value = Convert.ToInt32(Console.ReadLine());
Console.Write("\n1) Milli(m)\n2) Micro(µ)\n3) Nano(n)\n4) Pico(p)\nFrom Units: ");
int fromUnits = int.Parse(Console.ReadLine()) - 1;
Console.Write("To Units: ");
int toUnits = int.Parse(Console.ReadLine()) - 1;
decimal factor = factors[fromUnits, toUnits];
decimal answer = factor * value;
Console.WriteLine("The answer is : " + answer);
Console.Write("Go again? (Y/N): ");
string ans = Console.ReadLine();
if(ans.ToUpper() == "N")
break;
}
}
}
}
的价值:
请注意,在使用构建HTML内容之前,您应该转义$ _SERVER [' REQUEST_URI'],避免用户在网址中注入HTML / js。有关SCRIPT_NAME与REQUEST_URI的详细信息,请访问stackoverflow.com/a/326331/550618