我正在开发一个网站,客户已将其翻译成克罗地亚语和斯洛文尼亚语。为了与现有的 URL 模式保持一致,我们生成了模仿应用程序布局的 URL 重写规则,这导致 URL 中出现许多非 ASCII 字符。
\n\n示例 \xc5\xa1 \xc5\xbe \xc4\x8d
\n\n有些链接是使用 getURL 从 Flash 触发的,有些是标准 HTML 链接。有些是编程式的 Response.Redirects,有些是通过向响应添加 301 状态代码和位置标头来实现。我正在 IE6、IE7 和 Firefox 3 中进行测试,浏览器间歇性地显示非拉丁字符 url 编码。
\n\n\xc5\xa1 = %c5%a1\n\xc5\xbe = %c5%be\n\xc4\x8d = %c4%8d\nRun Code Online (Sandbox Code Playgroud)\n\n我猜这与 IIS 及其处理 Response.Redirect 和 AddHeader("Location ...
\n\n有谁知道强制 IIS 不对这些字符进行 URL 编码的方法,或者我最好的选择是用非变音符号替换这些字符?
\n\n谢谢
\nasp.net iis-6 friendly-url url-rewriting non-ascii-characters
我需要创建这个 301 重定向规则:
/blog/item.asp?n=12817redirect to/blog/item/12817
我使用以下参数在 IIS URL Rewrite 模块中创建了一个规则:
图案: ^blog/item.asp\?n=([0-9]+)
重定向网址: blog/item/{R:1}
当我在 IIS 中测试它时它工作正常,它在我的 web.config 中创建了这个规则:
<rule name="Asp classic Legacy 301 redirect" stopProcessing="true">
<match url="^blog/item.asp\?n=([0-9]+)" />
<action type="Redirect" url="blog/item/{R:1}" appendQueryString="true" />
</rule>
Run Code Online (Sandbox Code Playgroud)
但是当我/blog/item.asp?n=12817在浏览器中导航时,它仍然显示我的The resource cannot be found.文本错误Requested URL: /blog/item.asp
为什么可以?我需要在其他地方切换其他东西吗?
谢谢
以下网址工作正常:
http://www.domain.com/address
Run Code Online (Sandbox Code Playgroud)
但是当我传递任何查询字符串时,例如:
http://www.domain.com/address?back=order-opc.php?step=1
Run Code Online (Sandbox Code Playgroud)
显示404页面
我的重写:
"^/address" => "/address.php",
Run Code Online (Sandbox Code Playgroud)
我尝试了很多不同的重写似乎都不起作用...我应该如何重写?
我已经重写了 cond 就像这样
RewriteCond %{HTTP_HOST} !^bamse\.ba$ [NC]
RewriteRule ^(.*)$ http://bamse.ba/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
我在互联网上的某个地方发现了我自己没有写过的代码。它的作用是将我所有的子域(如 www.bamse.ba、hello.bamse.ba)重定向到 bamse.ba。
够公平的。这工作正常,但问题是我使用 timthumb.php 脚本,它从 images.anka.com 加载所有图像
现在的问题是,如果我启用重写规则,我的所有图像都是从 bamse.ba 而不是 images.anka.com 加载的
我如何排除域images.anka.com 它不是重写规则的一部分。有任何想法吗?
我尝试了几种方法来从我的 URL 中删除 index.php。
像这样的问题
网址不起作用(我想要这个):http : //mysite.in/our-story
网址工作(我不想要这个):http : //mysite.in/index.php/our-story
1) 我试图启用 rewrite_mod 但它已经启用。
2) 我曾尝试将此代码写入 .htaccess 文件,但问题未解决。
选项 -MultiViews RewriteEngine On
Run Code Online (Sandbox Code Playgroud)RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
任何文件安装剩余?然后告诉我??(但我已经安装了所有东西。)
我的 000-default 文件是:
Run Code Online (Sandbox Code Playgroud)ServerAdmin webmaster@localhost ServerName mydomain.in DocumentRoot /var/www/mysite/public <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/mysite/public/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny …
简而言之,我希望能够使用 htaccess 以便我可以执行各种重写命令。我正在使用 AWS elasticbeanstalk,下面是我试图让 htaccess 工作时的困境。
我的实例上传失败,并收到如下图所示的红色警报:

基本上我已经使用 .ebextensions 覆盖了所有内容,以允许 htaccess 使用以下代码:
files:
"/etc/httpd/conf.d/enable_mod_rewrite.conf":
mode: "644"
owner: root
group: root
content: |
AllowOverride All
Run Code Online (Sandbox Code Playgroud)
但这不是导致问题的原因。什么运行问题是这样的:
RewriteEngine On
Run Code Online (Sandbox Code Playgroud)
位于 htaccess。几乎就像它不能接受 rewritenegine 被打开一样。
更新:
在 /var/log/eb-activity.log 中:
Command CMD-TailLogs succeeded.
[2015-07-10T10:25:09.784Z] INFO [25589] - [CMD-TailLogs] : Starting activity...
[2015-07-10T10:25:10.206Z] INFO [25589] - [CMD-TailLogs/AddonsBefore] : Starting activity...
[2015-07-10T10:25:10.207Z] INFO [25589] - [CMD-TailLogs/AddonsBefore] : Completed activity.
[2015-07-10T10:25:10.207Z] INFO [25589] - [CMD-TailLogs/TailLogs] : Starting activity...
[2015-07-10T10:25:10.207Z] INFO [25589] - [CMD-TailLogs/TailLogs/TailLogs] : Starting activity...
Run Code Online (Sandbox Code Playgroud)
在 …
apache .htaccess url-rewriting amazon-web-services amazon-elastic-beanstalk
我正在尝试使用node.js和运行聊天脚本socket.io。我遵循了 socket.io 网站上的教程,让它在我的本地 Windows 节点服务器上运行http://localhost:3000得很好。
现在我将项目转移到一个网络服务器,它将使用port 54321. 因为服务器运行的是 Apache 网络服务器,所以我需要使用一个.htaccess文件将请求重定向到 node.js 服务器:
RewriteEngine On
RewriteRule ^chat/(.*) http://localhost:54321/$1 [P]
Run Code Online (Sandbox Code Playgroud)
所以我的聊天脚本可以在 http://www.examle.com/chat/
该网站将在浏览器中正常打开,所有 HTML 都在那里。但是 socket.io 功能不起作用。控制台(浏览器、客户端)显示以下错误消息:
GET http://www.example.com/socket.io/?EIO=3&transport=polling&t=1439208895332-0 404 File not found
Run Code Online (Sandbox Code Playgroud)
我在 SO 上看到过类似的问题,它们有相同的 404 问题。答案主要是关于服务器 index.js 中变量的正确顺序。我尝试了这些解决方案只是为了确定,但它们没有帮助。因为该脚本确实在我的本地服务器上运行(url 中没有任何子目录),所以我认为它可能有所不同。奇怪的是,客户端 socket.io 脚本似乎忽略/chat/了请求中的子目录。如果我尝试手动打开 GET 请求中的 URL,/chat/它确实会给我回复!
http://www.example.com/chat/socket.io/?EIO=3&transport=polling&t=1439208895332-0
Run Code Online (Sandbox Code Playgroud)
这行得通!
但是我怎样才能让 socket.io 为它的请求实际使用正确的路径/url?
我用Javascript编写了一个前端 SPA。它使用 Ember 及其路由、虚假 URL、身份验证和 Ember 几乎隐式处理的所有惊人的东西。
后端是用 PHP 编写的,页面应由 Apache 服务器提供服务。
现在,如果请求被发送到根文件(又名索引)并且一切都从这里处理,则页面工作正常。但是,如果我在比方说重新加载页面localhost/login,Apache 会尝试找到一个名为 login 的文件,该文件自然不存在,因为所有内容都是在 Javascript 中处理的,并且我得到了广为人知的 404 -The requested URL /login was not found on this server.
我如何告诉 Apache 始终服务index.php,无论 URL 中是什么?
我想在 ASP.NET 中用查询字符串重写 URL。URL 如下所示:
http://localhost:51392/productdetails.aspx?id=zdpMPZVXkDtjw92Crx7eew==
Run Code Online (Sandbox Code Playgroud)
我想将 url 改写成这样:
http://localhost:51392/Details/zdpMPZVXkDtjw92Crx7eew==
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下方法重写 url(类似这样):
<urlMappings>
<add url="~/Shop" mappedUrl="~/shop.aspx"/>
</urlMappings>
Run Code Online (Sandbox Code Playgroud)
但我不太确定如何使用查询字符串正确映射 URL?可用于实现此目的的最简单或其他方法是什么?
谢谢!
PS 伙计们,这就是我尝试访问重写 URL 的方式:
<a href='<%# "/productdetails.aspx?id=" + RL_DAL.RijndaelHelper.AES.Encrypt(Eval("ProductID").ToString(),"key_to_enrypt") %>'><%# Eval("ProductName") %>
Run Code Online (Sandbox Code Playgroud) 好吧,我是新手……第一次在这里提问。我有一个名为example.com的域, 我所有的网站都位于以下 URL:https : //example.com/example.com/inter/pf2/ 我想要的是以下内容:当用户转到https://example 时.com在https://example.com/example.com/inter/pf2/显示所有内容,但 URL 一直说example.com 我尝试了以下操作:
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule ^$ /example.com/inter/pf2/ [L]
Run Code Online (Sandbox Code Playgroud)
但它不起作用
编辑:
This is the .htaccess:
RewriteEngine on
# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php74” package as the default “PHP” programming language.
<IfModule mime_module>
AddHandler application/x-httpd-ea-php74 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit
RewriteRule ^/?$ %{HTTP_HOST}/inter/pf2/ [L]
Run Code Online (Sandbox Code Playgroud) url-rewriting ×10
.htaccess ×6
mod-rewrite ×5
apache ×4
friendly-url ×3
asp.net ×2
c# ×1
iis ×1
iis-6 ×1
iis-7 ×1
laravel ×1
lighttpd ×1
node.js ×1
query-string ×1
redirect ×1
rewrite ×1
socket.io ×1
subdirectory ×1
ubuntu ×1