2013-11-07 2 views
0

У меня странная проблема.Spaces in filename issue

У меня есть подпапка на веб-сайте (Joomla 2.5 с .htaccess, mod_rewrite и SEF urls enabled), в которой содержится куча файлов PDF. Они напрямую загружаются в эту папку по FTP, поэтому у меня нет большого шанса поиграть с именами файлов.

Они выглядят примерно так:

1093 - Transport services in Kenya.pdf. 

Я тогда сделать простую ссылку на этот файл, как например:

<a href="content/1093 - Transport services in Kenya.pdf" target="_blank">View report content</a> 

Он перенаправляет меня на первую страницу, а не в файл. Это похоже на проблему перезаписи?

Вот мой Htaccess:

## 
# @package  Joomla 
# @copyright Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved. 
# @license  GNU General Public License version 2 or later; see LICENSE.txt 
## 

## 
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE! 
# 
# The line just below this section: 'Options +FollowSymLinks' may cause problems 
# with some server configurations. It is required for use of mod_rewrite, but may already 
# be set by your server administrator in a way that dissallows changing it in 
# your .htaccess file. If using it causes your server to error out, comment it out (add # to 
# beginning of line), reload your site in your browser and test your sef url's. If they work, 
# it has been set by your server administrator and you do not need it set here. 
## 

## Can be commented out if causes errors, see notes above. 
Options +FollowSymLinks 

## Mod_rewrite in use. 

RewriteEngine On 

## Begin - Rewrite rules to block out some common exploits. 
# If you experience problems on your site block out the operations listed below 
# This attempts to block the most common type of exploit `attempts` to Joomla! 
# 
# Block out any script trying to base64_encode data within the URL. 
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR] 
# Block out any script that includes a <script> tag in URL. 
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] 
# Block out any script trying to set a PHP GLOBALS variable via URL. 
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] 
# Block out any script trying to modify a _REQUEST variable via URL. 
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) 
# Return 403 Forbidden header and show the content of the root homepage 
RewriteRule .* index.php [F] 
# 
## End - Rewrite rules to block out some common exploits. 

## Begin - Custom redirects 
# 
# If you need to redirect some pages, or set a canonical non-www to 
# www redirect (or vice versa), place that code here. Ensure those 
# redirects use the correct RewriteRule syntax and the [R=301,L] flags. 
# 
## End - Custom redirects 

## 
# Uncomment following line if your webserver's URL 
# is not directly related to physical file paths. 
# Update Your Joomla! Directory (just/for root). 
## 

# RewriteBase/

## Begin - Joomla! core SEF Section. 
# 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
# 
# If the requested path and file is not /index.php and the request 
# has not already been internally rewritten to the index.php script 
RewriteCond %{REQUEST_URI} !^/index\.php 
# and the request is for something within the component folder, 
# or for the site root, or for an extensionless URL, or the 
# requested URL ends with one of the listed extensions 
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC] 
# and the requested path and file doesn't directly match a physical file 
RewriteCond %{REQUEST_FILENAME} !-f 
# and the requested path and file doesn't directly match a physical folder 
RewriteCond %{REQUEST_FILENAME} !-d 
# internally rewrite the request to the index.php script 
RewriteRule .* index.php [L] 

# 
## End - Joomla! core SEF Section. 

Что я могу сделать так, чтобы эти PDF файлы могут быть доступны в новой вкладке?

Благодаря

JG

+0

2 вещи для тестирования: удалите (комментарий) первый блок безопасности rewriteCond/rewriteRule, в случае. И попытайтесь создать действительный url-закодированный url (где пробелы уже будут установлены как% 20) на странице html. – regilero

+0

Иногда ошибка может быть простой, относительный контент/находится только под домашним режком, вы пробовали/content/my big pdf file.pdf? – jacouh

ответ

0

я думаю, вы должны изменить свой .htaccess и позволить spezcific IP 127.0.0.1.

Order Deny, Allow 
Deny from all 
Allow from 127.0.0.1 

Я думаю, что ваш сервер ответит, иначе измените имя файла с пробела на «-». Приветствия из Германии. :-)